Имеется два типа материалов: Автор и Книга. У Книги может быть несколько Авторов, у Автора - несколько Книг. В 6-ке я реализовывал это с помощью модулей Node Reference и Node Referrer, но в 7-ке модуль References практически уже не развивается, поэтому есть желание реализовать эту связь на основе модуля Entity Reference (который всё равно уже используется на сайте для других целей).
Перерыв все модули на Д.О., нашёл пару подходящих: Viewfield и Corresponding Entity References, но у каждого из них есть свои нюансы. Но задача-то - типовая, и значит, кто-то уже наступил на все грабли её уже неоднократно решал! Поэтому, поделитесь своим рецептом: как наиболее простым/прямым способом организовать отношение Многие-ко-Многим на базе Entity Reference и вывести в ноде список нод, ссылающихся на неё?
Комментарии
разве нельзя использовать множественные значения(авторы) у книг?
Можно. Более того, именно так сейчас и сделано. Проблема в другом: как сделать так, чтобы на странице каждого Автора выводился список всех материалов типа Книга, которые ссылаются на данного Автора. В 6-ке это делалось с помощью модуля Node Referrer, но в 7-ке он зависит от модуля References, который уже не развивается.
Вот я и ищу альтернативные варианты.
Во вьюсах для entityreference есть релейшены в обе стороны: можно выбирать как референсы данной сущности, так и элементы, которые ссылаются на данную сущность.
Если нужно программно, то EntityFieldQuery справится с нахождением всех сущностей, ссылающихся на данную.
О, спасибо! Именно то, что нужно!
http://drupal.org/project/eva через это можно реализовать, главное нужный аргумент использовать)
Вот с аргументом как-раз затык и вышел: не могу найти, где он в Views 7.x-3.5 задаётся. А без него выводятся ВСЕ материалы, имеющие поле Автор.
Ну как где - в контекстных фильтрах. Если выводятся авторы для ноды книги - аргумент будет по идее nid книги, если книги для автора - то nid автора.
В который раз убеждаюсь в существовании "эффекта письма в эху": стоит только написать, что не можешь найти решения, как через 5 минут после нажатия кнопки "Отправить" хлопаешь себя по лбу и восклицаешь: "Блин, это ж элементарно! Как я сразу не додумался?"
Так и я, не успел оставить коммент, как понял, что контекстные фильтры теперь вместо аргументов, и даже правильно настроил вьюшку - теперь всё выводится именно так, как мне надо.
Ну и отлично