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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как изменить длину поля (max length) после создания, сохраняя данные

Май 15, 2018 г.

Друпал не позволяет менять длину текстового поля после создания. Функция field_update_field также нам не поможет - будет сгенерирована соответствующая ошибка, что поле уже содержит данные и изменить его длину нельзя. Это можно проделать вручную, зная ...

Читать

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

Январь 31, 2019 г.

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

Читать

Drupal API функции для работы с таксономией

Октябрь 12, 2018 г.

Drupal 7 поддерживает работу с таксономией на уровне ядра (модуль taxonomy), предоставляя богатый арсенал функций. Здесь мы рассмотрим только функции, ...

Читать

Возможные проблемы Invalid form POST data

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

Браузер сообщает об ошибке всплывающим окном вроде того, что на скриншоте. Сообщается, что AJAX завершен неправильно. Но основной симптом - что не работают ...

Читать
 

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

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



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