Универсальная функция загрузки сущности по значениям её свойств и полей
Функция, которая возвращает объект сущности по значениям её свойств и полей:
/**
* Return entity object by conditions.
*/
function entity_load_by_conditions($entity_type, $properties = NULL, $fields = NULL) {
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', $entity_type);
if ($properties) {
foreach ($properties as $name => $value) {
$query->propertyCondition($name, $value);
}
}
if ($fields) {
foreach ($fields as $name => $values) {
foreach ($values as $column => $value) {
$query->fieldCondition($name, $column, $value);
}
}
}
$query->range(0, 1);
$result = $query->execute();
if ($result) {
$id = key($result[$entity_type]);
$entities = entity_load($entity_type, array($id));
return reset($entities);
}
}
Примеры использования:
// Получить ноду типа page с заголовком Foo и значением поля field_category равным 2
$node = entity_load_by_conditions(
'node',
array('type' => 'page', 'title' => 'Foo'),
array('field_category' => array('tid' => 2))
);
// Получить термин с именем Foo из словаря с vid=3
$term = entity_load_by_conditions(
'taxonomy_term',
array('name' => 'Foo', 'vid' => 3)
);
Написанное актуально для
Drupal 7
Комментарии:
Нету комментариев для вывода...