Ищу рецепт для отношения "многие-ко-многим" на базе Entity Reference

Главные вкладки

Аватар пользователя RedRat RedRat 4 января 2013 в 13:58

Имеется два типа материалов: Автор и Книга. У Книги может быть несколько Авторов, у Автора - несколько Книг. В 6-ке я реализовывал это с помощью модулей Node Reference и Node Referrer, но в 7-ке модуль References практически уже не развивается, поэтому есть желание реализовать эту связь на основе модуля Entity Reference (который всё равно уже используется на сайте для других целей).

Перерыв все модули на Д.О., нашёл пару подходящих: Viewfield и Corresponding Entity References, но у каждого из них есть свои нюансы. Но задача-то - типовая, и значит, кто-то уже наступил на все грабли её уже неоднократно решал! Поэтому, поделитесь своим рецептом: как наиболее простым/прямым способом организовать отношение Многие-ко-Многим на базе Entity Reference и вывести в ноде список нод, ссылающихся на неё?

Комментарии

Аватар пользователя RedRat RedRat 4 января 2013 в 15:42

q2_faith wrote:
разве нельзя использовать множественные значения(авторы) у книг?

Можно. Более того, именно так сейчас и сделано. Проблема в другом: как сделать так, чтобы на странице каждого Автора выводился список всех материалов типа Книга, которые ссылаются на данного Автора. В 6-ке это делалось с помощью модуля Node Referrer, но в 7-ке он зависит от модуля References, который уже не развивается. Sad

Вот я и ищу альтернативные варианты.

Аватар пользователя graker graker 4 января 2013 в 15:46

Во вьюсах для entityreference есть релейшены в обе стороны: можно выбирать как референсы данной сущности, так и элементы, которые ссылаются на данную сущность.

Если нужно программно, то EntityFieldQuery справится с нахождением всех сущностей, ссылающихся на данную.

Аватар пользователя q2_faith q2_faith 4 января 2013 в 15:53

"RedRat" wrote:
чтобы на странице каждого Автора выводился список всех материалов типа Книга, которые ссылаются на данного Автора.

http://drupal.org/project/eva через это можно реализовать, главное нужный аргумент использовать)

Аватар пользователя RedRat RedRat 9 января 2013 в 15:57

q2_faith wrote:
http://drupal.org/project/eva через это можно реализовать, главное нужный аргумент использовать)

Вот с аргументом как-раз затык и вышел: не могу найти, где он в Views 7.x-3.5 задаётся. А без него выводятся ВСЕ материалы, имеющие поле Автор. Sad

Аватар пользователя graker graker 9 января 2013 в 16:17

Ну как где - в контекстных фильтрах. Если выводятся авторы для ноды книги - аргумент будет по идее nid книги, если книги для автора - то nid автора.

Аватар пользователя RedRat RedRat 9 января 2013 в 16:26

graker wrote:
Ну как где - в контекстных фильтрах. Если выводятся авторы для ноды книги - аргумент будет по идее nid книги, если книги для автора - то nid автора.

В который раз убеждаюсь в существовании "эффекта письма в эху": стоит только написать, что не можешь найти решения, как через 5 минут после нажатия кнопки "Отправить" хлопаешь себя по лбу и восклицаешь: "Блин, это ж элементарно! Как я сразу не додумался?"

Так и я, не успел оставить коммент, как понял, что контекстные фильтры теперь вместо аргументов, и даже правильно настроил вьюшку - теперь всё выводится именно так, как мне надо. Smile