Ссылка на сущность: Фильтр по представлению ссылки на сущность работает не так, как ожидалось
Я пытаюсь получить виджет выбора справочного поля таксономии, который отображает список терминов таксономии, включая некоторые дополнительные данные из их полей. Я попытался использовать "Метод ссылки" = "Представления: Фильтр по представлению ссылки на сущность", а затем выберите созданное мной представление ссылки на сущность, затем в моем представлении ссылки на сущность я сделал следующее:
Однако это дает мне только название термина таксономии, несмотря на настройки указание на то, что в нем могут отображаться все поля в строке ("Примечание: В отображениях "Ссылка на сущность" все поля будут отображаться в строке, если здесь не будет сделан явный выбор встроенных полей".).
5 answers
В данный момент вы не можете.
Смотрите \Drupal\views\Plugin\EntityReferenceSelection\ViewsSelection::getReferenceableEntities()
, он просто использует представление для получения результатов, а затем вызывает $entity->label(). Это означает, что у вас нет возможности отменить это.
Это означает, что если вы хотите этого, вам нужно предоставить свой собственный плагин. Вы можете либо создать подкласс из ViewsSelection и сохранить представление, либо просто расширить его по умолчанию и переопределить этот метод.
Возможно, также стоит открыть запрос на функцию, у меня уже был этот вариант использования несколько раз, и новый флажок или опция где-нибудь были бы хорошим, обратно совместимым способом представить эту функцию в незначительном выпуске.
Модуль Представления ссылок на сущности Select поддерживает дополнительные поля в списках выбора и флажках при выборе сущностей в поле ссылки на сущность. Мы успешно использовали его с объектами ECK.
Возможно, есть способ обойти это, но у него также есть ограничения, как указано в этом вопросе, поданном мной : https://www.drupal.org/node/2841330#comment-11854353
Другими словами, напишите свой собственный обработчик отображения для обработки результата представления entityreference.
Разработчики webform_references сделали это, но, как вы можете видеть в моем выпуске, они также делегируют свою тематику выбора веб-формы результатам визуализации представлений.
Где в моем мнение (см. Второй комментарий) ответственность (или выбор, если на то пошло) должен нести тот, кто запрашивает представление ссылки на сущность.
Другими словами, используйте функцию views_get_view_result()
вместо $view->execute_display()
.
Для этого есть рабочее исправление: Вывод представления не используется для параметров entityreference
В Drupal 8 вы можете использовать модуль Форматирования поля ссылки на объекты , чтобы использовать модуль представления для отображения объектов, на которые даны ссылки.