Drupal 7 tip: Zoek uw entities voor field values

Posted by: 
Dominique De Cooman

Wanneer u uw entities op waarde op een field zoekt, bijvoorbeeld wanneer u alle nodes via een node reference field wilt krijgen. In ons geval hebben we een event en we willen alle sessies die ernaar verwijzen weten.

Hiervoor hebben we de EntityFieldQuery class in core wat het erg makkelijk maakt om fields te doorzoeken. Dus niet langer in de database structuur kijken om uw waarde uit een tabel te halen, gebruik EntityFieldQuery class.

Op deze manier hoeft u zich geen zorgen te maken hoe tabellen gemaakt en gemanipuleerd zijn door de field api. Geen zorgen meer over broken queries op fields.

U kunt het zo gebruiken:

<?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']));
  
//do stuff with the session nodes...
}
?>

Voor meer: http://api.drupal.org/api/drupal/includes--entity.inc/class/EntityFieldQ...

Reactie toevoegen