¿Cómo conseguir usuarios (entidades) para un determinado valor de campo?

8

Quiero escribir una función que devuelva a los usuarios que hayan ingresado un cierto valor en un campo de usuario personalizado.

Digamos que hay un campo de cumpleaños personalizado para cada usuario. ¿Cuál sería la mejor manera de obtener todos los usuarios con un cumpleaños determinado?

Podría crear una consulta de base de datos que busque en la tabla field_data_field_birthday y devuelva la entidad (s) (que en este caso serían los id. De usuario) para los que field_birthday_value coincide con un valor determinado y luego carga el usuario (s).

Esto parece un poco tosco, ¿hay funciones genéricas disponibles para este caso de uso? ¿En la API de entidad o en la API de campo quizás?

dschenk
fuente

Respuestas:

12

Ejemplo simple para el caso de uso sobre el que pregunté:

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

$result = $query->execute();
$users_ids = array_keys($result['user']);
dschenk
fuente
Trabajado como un encanto.
Anders
Indique el espacio de nombres que debe incluir para evitar errores fatales.
Alumno