Как получить пользователей (сущностей) для определенного значения поля?

8

Я хочу написать функцию, которая возвращает пользователей, которые ввели определенное значение в пользовательское поле пользователя.

Допустим, для каждого пользователя есть настраиваемое поле дня рождения. Как лучше всего получить всех пользователей с определенным днем ​​рождения?

Я мог бы создать запрос к БД, который ищет таблицу field_data_field_birthday и возвращает entity_id (s) (который в этом случае будет идентификатором (ами) пользователей), для которого field_birthday_value соответствует заданному значению, а затем загружает пользователя (ей).

Это кажется немного грубым, есть ли общие функции для этого варианта использования? В сущности API или поле API может быть?

dschenk
источник

Ответы:

12

Простой пример использования, о котором я спрашивал:

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

$result = $query->execute();
$users_ids = array_keys($result['user']);
dschenk
источник
Работал как шарм.
Андерс
Пожалуйста, посоветуйте включить в это пространство имен, чтобы избежать фатальной ошибки.
Ученик