Bagaimana cara mendapatkan pengguna (entitas) untuk nilai bidang tertentu?

8

Saya ingin menulis fungsi yang mengembalikan pengguna yang telah memasukkan nilai tertentu ke bidang pengguna khusus.

Katakanlah ada bidang ulang tahun khusus untuk setiap pengguna. Apa cara terbaik untuk mendapatkan semua pengguna dengan ulang tahun tertentu?

Saya bisa membuat kueri DB yang mencari tabel field_data_field_birthday dan mengembalikan entity_id (yang dalam hal ini adalah id pengguna) yang cocok dengan field_birthday_value cocok dengan nilai yang diberikan dan kemudian memuat pengguna tersebut.

Ini sepertinya sedikit kasar, apakah ada fungsi generik untuk use case ini tersedia? Di entitas API atau API bidang mungkin?

dschenk
sumber

Jawaban:

12

Contoh sederhana untuk use case saya bertanya tentang:

$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'user')
  ->fieldCondition('field_birthday', 'value', $birthday);

$result = $query->execute();
$users_ids = array_keys($result['user']);
dschenk
sumber
Bekerja seperti pesona.
Anders
Mohon saran namespace untuk menyertakan ini untuk menghindari Kesalahan Fatal.
Murid