Примеры работы с EntityFieldQuery

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

Правда, как это часто бывает в Drupal, очень мало примеров использования этого contributed API.

Пример №1 : выбор публикаций с условием к одному из полей сущности.

Здесь я выбираю публикации типа dstr (карточки дистрибьюторов), фильтруя их по названию и значению поля field_site (адрес сайта в карточке дистрибьютора).

Вот пример работы с результатом запроса:

Пример №2 : используем EntityFieldQuery для поиска в таксономии.

Для запроса может понадобится код (vid) словаря. Получите его по имени следующим образом:

Найдем в словаре станцию метро (термин) с заданным названием и городом:

Пример очень похож на предыдущий. Практически EntityFieldQuery уравнивает работу с таксономией и нодами.

Пример обработки результата:

Пример №3 : используем EntityFieldQuery для поиска в field collection.

EntityFieldQuery отлично работает с коллекциями. Есть определенные сложности в том, чтобы отфильтровать только экземпляры, связанные только с определенной сущностью. Я покажу вам как я решаю эту проблему, но если у вас есть другие варианты — делитесь в комментариях.

В первом примере мы искали среди node типа ‘дистрибьютор’. У данной публикации одно из полей field_addr оказалось сформировано модулем field_collection — набор карточек адресов данного дистрибьютора.

Давайте поищем среди этого набора карточек.

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

Программно устанавливаем значения настроек на страницах, созданных Config Pages

Ноябрь 22, 2018 г.

Модуль Config Pages позволяет создавать страницы конфигурации для вашего модуля, всего сайта, или может быть просто одного из разделов сайта. Потом эти значения можно читать из программы и использовать так, как вам требуется. Но API Config Pages не содержит ...

Читать

Вывод результатов формы в саму форму после submit

Март 2, 2017 г.

Что делают в большинстве случаев после успешного submit данных формы? Вариантов два - либо показывают системное сообщение drupal_set_messge(), либо производят переадресацию на некую страницу с результатами. Первый вариант почти всегда выглядит неказисто, ...

Читать

Error: Class 'Aws\S3\StreamWrapper' not found (Drupal 7)

Август 29, 2022 г.

При обновлении модуля s3fs с ветки 7.x-2.x -> 7.x->3.x друпалу не удаётся найти указанный класс. Все необходимые шаги по апгрейду сделаны, как описано в readme.txt модуля. Это проблема инициализации библиотеки awssdk в s3fs_libraries_info(). Drupal ...

Читать

Получить имя поля ключа entity в Drupal 7

Апрель 6, 2021 г.

У меня эта задача возникла при работе с формами, где формы содержат поля '#entity' и '#entity_type'. Нужно было найти универсальный способ прочитать ID объекта, т.к. для каждого объекта имя этого поля может отличаться (для node - nid, для file - fid и ...

Читать
 

Комментарии к «Примеры работы с EntityFieldQuery»

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



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