Como obter usuários (entidades) para um determinado valor de campo?

8

Quero escrever uma função que retorne usuários que inseriram um determinado valor em um campo de usuário personalizado.

Digamos que exista um campo de aniversário personalizado para cada usuário. Qual seria a melhor maneira de obter todos os usuários com um determinado aniversário?

Eu poderia criar uma consulta ao banco de dados que pesquisa a tabela field_data_field_birthday e retorna os entity_id (s) (que nesse caso seriam os IDs dos usuários) para os quais o field_birthday_value corresponde a um determinado valor e, em seguida, carrega o (s) usuário (s).

Isso parece um pouco bruto, existem funções genéricas para este caso de uso disponíveis? Na API da entidade ou na API do campo, talvez?

dschenk
fonte

Respostas:

12

Exemplo simples para o caso de uso que perguntei sobre:

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

$result = $query->execute();
$users_ids = array_keys($result['user']);
dschenk
fonte
Funcionou como um encanto.
Anders
Por favor, informe o espaço para nome a incluir para evitar erro fatal.
Aluno