Comment obtenir des utilisateurs (entités) pour une certaine valeur de champ?


8

Je veux écrire une fonction qui renvoie les utilisateurs qui ont entré une certaine valeur dans un champ utilisateur personnalisé.

Disons qu'il existe un champ d'anniversaire personnalisé pour chaque utilisateur. Quelle serait la meilleure façon d'obtenir tous les utilisateurs avec un certain anniversaire?

Je pourrais créer une requête de base de données qui recherche la table field_data_field_birthday et renvoie le (s) entity_id (qui dans ce cas serait l'id (s) des utilisateurs) pour lequel le field_birthday_value correspond à une valeur donnée, puis chargez les utilisateurs.

Cela semble un peu grossier, existe-t-il des fonctions génériques pour ce cas d'utilisation? Dans l'API d'entité ou l'API de champ peut-être?

Réponses:


12

Exemple simple pour le cas d'utilisation que j'ai demandé:

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

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

A fonctionné comme un charme.
Anders

Veuillez conseiller l'espace de noms à inclure pour éviter une erreur fatale.
Elève
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.