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?

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']);

Funcionou como um encanto.
Anders

Por favor, informe o espaço para nome a incluir para evitar erro fatal.
Aluno
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.