Как получить значение поля для всех узлов в типе контента?


Я хотел бы получить значения поля из всех узлов типа контента. Как я могу это сделать? Запрос EntityFieldQuery, похоже, возвращает только идентификаторы узлов, так что мне понадобится db_query? Sg аналогично этому В пользовательском модуле, как мне получить все узлы определенного типа?

Я думаю, мне просто нужно найти имя таблицы поля...

 4
Author: Community, 2013-01-08

1 answers

В вашем случае вы, вероятно, можете просто запросить таблицу данных полей с условием для типа сущности и пакета.

В любом случае, что-то вроде:

$field_name = 'FIELD_NAME';
$result = db_select("field_data_{$field_name}", 'f')
  ->fields('f', array('entity_id', "{$field_name}_value"))
  ->condition('entity_type', 'node')
  ->condition('bundle', 'article')
  ->condition('deleted', 0)
  ->range(0,10)
  ->execute();

foreach ($result as $row) {
  // drupal_set_message($row->field_name_value); // example
  drupal_set_message('<pre>'.print_r($row,1).'</pre>');
}

Кроме того, вы можете присоединиться к таблице узлов, чтобы выбрать только опубликованный контент, но в этом и суть.

 5
Author: David Thomas, 2015-09-14 05:16:01