Ссылка на сущность: Фильтр по представлению ссылки на сущность работает не так, как ожидалось


Я пытаюсь получить виджет выбора справочного поля таксономии, который отображает список терминов таксономии, включая некоторые дополнительные данные из их полей. Я попытался использовать "Метод ссылки" = "Представления: Фильтр по представлению ссылки на сущность", а затем выберите созданное мной представление ссылки на сущность, затем в моем представлении ссылки на сущность я сделал следующее:

enter image description here

Однако это дает мне только название термина таксономии, несмотря на настройки указание на то, что в нем могут отображаться все поля в строке ("Примечание: В отображениях "Ссылка на сущность" все поля будут отображаться в строке, если здесь не будет сделан явный выбор встроенных полей".).

enter image description here

Author: No Sssweat, 2016-04-22

5 answers

В данный момент вы не можете.

Смотрите \Drupal\views\Plugin\EntityReferenceSelection\ViewsSelection::getReferenceableEntities(), он просто использует представление для получения результатов, а затем вызывает $entity->label(). Это означает, что у вас нет возможности отменить это.

Это означает, что если вы хотите этого, вам нужно предоставить свой собственный плагин. Вы можете либо создать подкласс из ViewsSelection и сохранить представление, либо просто расширить его по умолчанию и переопределить этот метод.

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

 4
Author: Berdir, 2016-04-22 22:57:20

Модуль Представления ссылок на сущности Select поддерживает дополнительные поля в списках выбора и флажках при выборе сущностей в поле ссылки на сущность. Мы успешно использовали его с объектами ECK.

 2
Author: imclean, 2016-08-17 02:47:19

Возможно, есть способ обойти это, но у него также есть ограничения, как указано в этом вопросе, поданном мной : https://www.drupal.org/node/2841330#comment-11854353

Другими словами, напишите свой собственный обработчик отображения для обработки результата представления entityreference.

Разработчики webform_references сделали это, но, как вы можете видеть в моем выпуске, они также делегируют свою тематику выбора веб-формы результатам визуализации представлений. Где в моем мнение (см. Второй комментарий) ответственность (или выбор, если на то пошло) должен нести тот, кто запрашивает представление ссылки на сущность. Другими словами, используйте функцию views_get_view_result() вместо $view->execute_display().

 0
Author: rawdesk.be, 2017-01-08 13:29:40
 0
Author: andir, 2018-12-11 00:05:55

В Drupal 8 вы можете использовать модуль Форматирования поля ссылки на объекты , чтобы использовать модуль представления для отображения объектов, на которые даны ссылки.

 0
Author: rwilson, 2020-04-05 04:41:22