Drupal: как получить список target_id из ссылочного поля без перебора массива

При работе с сущностями в Drupal нередко возникает задача: из ссылочного поля (entity reference) нужно достать список ID связанных объектов.

Например, у нас есть нода с полем field_other_exclusions. Если вывести его содержимое через getValue(), мы получим массив массивов:

На первый взгляд придётся перебирать этот массив циклом, чтобы собрать только target_id. Но на практике есть несколько более изящных решений.

Функция array_column

Самый короткий способ на чистом PHP — использовать array_column:

Это каноничный приём, который часто встречается в Drupal-коде.

Функция referencedEntities

Если вам нужны не только ID, а сами объекты, используйте метод referencedEntities():

А список ID можно получить одной строкой:

Комбинированный вариант

Если нужно компактно и с проверкой:

Мало букафф? Читайте есчо !

SpecialCharacters плагин в CKE5. Добавляем символы.

Апрель 11, 2025 г.

В CKEditor 5 есть родной плагин, который отображает список спец. символов для вставки в редактор. Он удобен и прост, проблема лишь в том, что он содержит ...

Читать

Быстро чистим таксономии в Drupal

Апрель 24, 2025 г.

Чтобы через админку почистить длинные словари, нужно много времени, даже если вы используете bulk операции. Потому будем чистить их через код. Разберем пример кода: [crayon-6a692b0c19928943997073/] Эти две команды удаляют все термины из словаря ...

Читать

Чтение данных из oembed провайдера

Март 11, 2025 г.

В Drupal 10/11 поддержка Oembed провайдеров в ядре (модуль media) позволяет легко и непринуждённо читать данные о медиа прямо из провайдера. Ранее я рассказывал как зарегистрировать oembed для rutube, чтобы иметь возможность оперировать видео контентом ...

Читать

Добавить произвольную ссылку в меню на этапе препросессинга в Drupal

Март 17, 2025 г.

Иногда бывает потребность создать ссылку из кода. Структура ссылки довольно сложная на этапе препроцессинга шаблона меню, делюсь сниппетом кода. Потребуются следующие зависимости: [crayon-6a692b0c1a2ca712939069/] Добавим ссылку в меню main. ...

Читать
 

Комментарии к «Drupal: как получить список target_id из ссылочного поля без перебора массива»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: