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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как рендерить отдельные поля элемента field collections

Январь 31, 2019 г.

Модуль field_collection всю свою историю существования (аж 2010 года) проходит в статусе beta версии. Тем не менее многие разработчики используют его в своих проектах. На текущий момент это версия 7.x-1.0-beta13. Хотя FC - это ещё один entity, ...

Читать

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

Апрель 6, 2021 г.

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

Читать

Глюк модуля transliteration в php 7.3.

Октябрь 20, 2019 г.

Столкнулся со следующим неприятным багом, при использовании модуля pathauto, совместно с модулем транслитерации: Drupal генерирует "обрезанные" синонимы адресов страниц. Длина получаемого синонима плавала от 40-70 символов, и я никак не мог понять ...

Читать

Показ анимации, что идет загрузка, для обновления контента views в режиме ajax

Май 22, 2021 г.

Подгрузка данных с сервера (например, при изменении параметров фильтра) происходит с небольшой задержкой, потому пользователь может не понять, среагировал как то сайт или нет на его действия. Задача состоит в том, чтобы показать, что идет загрузка ...

Читать
 

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

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



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