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


8

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

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

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

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

Ответы:


12

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

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

$result = $query->execute();
$users_ids = array_keys($result['user']);

Работал как шарм.
Андерс

Пожалуйста, посоветуйте включить в это пространство имен, чтобы избежать фатальной ошибки.
Ученик
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.