понедельник, 30 мая 2011 г.

Drupal, выполнить запрос к системе Entity

Entity выделяется в отдельную незаменимую часть ядра Drupal, что заменит ноды и типы контента в нынешнем понимании. Суть таже, название и работа, другая. Стала задача проверять уникальность полей в определённом типе контента... Старым методом не получилось(Запросом), очень непонятая структура БД(на первый взгляд). Нашёл кусок кода который всё разъяснил.
<?php
 //Заполненые ноды.
 $recipe_list = array();
 /*Объявляем класс, 
 */ который поможет выполнять запросы к Entity.
   $query = new EntityFieldQuery;
 //Строим запрос.
   $result = $query
  //Определяем тип Entity(сдесь node)
     ->entityCondition('entity_type', 'node')
  //Определяем связку, тип контента.
     ->entityCondition('bundle', 'recipe')
  //Устанавливаем фильтр.
     ->propertyCondition('status', 1)
     ->propertyCondition('uid', $account->uid)
  //Определяем сортировку.
     ->propertyOrderBy('created', 'DESC')
  //Устанавливаем Pager.
     ->pager(30)
  //Выполняем запрос.
    ->execute();
 //Загружаем данные контента.
 if (!empty($result['node'])) {
     $nodes = entity_load('node', array_keys($result['node']));
     foreach ($nodes as $node) $recipe_list[] = $node;
   }
?>

1 комментарий:

  1. Сортировка по полю.
    $query->fieldCondition('field_year', 'value', 2000, '=');

    ОтветитьУдалить