Как получить значение поля для всех узлов в типе контента?
Я хотел бы получить значения поля из всех узлов типа контента. Как я могу это сделать? Запрос EntityFieldQuery, похоже, возвращает только идентификаторы узлов, так что мне понадобится db_query? Sg аналогично этому В пользовательском модуле, как мне получить все узлы определенного типа?
Я думаю, мне просто нужно найти имя таблицы поля...
4
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