Astuce Drupal 7: Requêter sur vos entités pour remplir les valeurs de champ

Lorsque vous requêtez sur vos entités dans des valeurs de champs, par exemple, pour obtenir tous les nœuds via un champ de référence nœud. Dans notre cas, on veut récupérer toutes les sessions référencées à un évènement.

Pour cela, nous avons la classe EntityFieldQuery dans le noyau qui rend très facile l'ajout de requêtes à des champs. Donc, plus besoin de rechercher dans la structure de la base de données pour obtenir votre valeur à partir d'une table, utilisez simplement la classe EntityFieldQuery.

Ainsi, vous n'avez pas à vous soucier de comment les tables sont créées et manipulées par l'API dans le champ. Plus de soucis sur les requêtes invalides sur les champs.

Vous pouvez l'utiliser comme ceci:

<?php
$query 
= new EntityFieldQuery();

$query
->entityCondition('entity_type''node''=')
->
propertyCondition('type''session''=')
->
fieldCondition('field_session_event_reference''nid'$event_nid'=');

$session_ents $query->execute();

if (
$session_ents) {
  
$session_nodes node_load_multiple(array_keys($session_ents['node']));
  
// faire quelque chose avec les nœuds session ...
}
</ 
php>

Pour plus dinformationhttp://api.drupal.org/api/drupal/includes--entity.inc/class/EntityFieldQuery/7?>