Как я могу получить все связанные объекты узла программно?
Я пишу несколько сценариев drush и обнаружил, что мне нужно получить связанные объекты (узлы) текущего узла. Однако я могу найти информацию только для построения представлений, которые делают это.
Может ли кто-нибудь сказать мне, существует ли программный способ извлечения всех сущностей, относящихся к текущему nid, с фильтром по типу сущности?
В конечном счете мне нужно получить список идентификаторов узлов, которые относятся к текущему идентификатору узла.
Взаимосвязь зависит от отношение модуль.
1
1 answers
Таким образом, вы получите все ссылки на отображаемые элементы узла.
$current_path = explode('/', $_GET['q']);
if ($current_path[0] == 'node' && is_numeric($nid = $current_path[1])) {
$field = 'my_field';
$bundle = 'my_bundle';
$query = db_query("SELECT {$field}_target_id FROM field_data_{$field} WHERE entity_id = :nid AND bundle = :bundle",
array(
':nid' => $nid,
':bundle' => $bundle,
)
);
foreach($query as $row) {
$target_ids[] = $row->{$field . "_target_id"};
}
$nodes = node_load_multiple($target_ids);
}
Если у вас больше полей ссылок на сущности, вам необходимо расширить запрос (с большим количеством соединений) в соответствии с вашими полями.
0
Author: mchar, 2016-06-23 11:57:07