Как можно отобразить поля из ссылки на сущность в шаблонах узлов? [Друпал 8]
Для контекста я имею дело с двумя типами контента: статья и team_profile. В узлах статей у нас есть поле ссылки на сущность, в котором узел team_profile используется в качестве информации об авторе.
Я бы просто отрисовал объект в новом режиме отображения, но в нашем дизайне фотография установлена непосредственно над опубликованной датой и именем, рядом друг с другом:
В D7 я бы dpm($content)
и развернул бы информацию об узле, дважды щелкнул и вытащил остальная часть опорного пути. Я использую kint и могу выплюнуть содержимое ссылки на сущность до определенного уровня, {{ kint(content.field_blog_author[0]['#node']) }}
. Следующий уровень, к которому я хочу получить доступ, - это values
, но попытка выполнить следующее дает мне НОЛЬ:
content.field_blog_author[0]['#node’][‘values’]
content.field_blog_author[0]['#node’]=>values
content.field_blog_author[0]['#node’]->values
В конечном счете я хотел бы отобразить поля title
и field_team_image
из указанного узла (, который показан здесь в выводе kint ). Я не нашел информации об этом в документации или путем поиска. Было бы кто-нибудь, помогите мне освободиться?
1 answers
#узел на самом деле существует текущий узел.
Если вы хотите получить доступ к полям и их значениям, начните с узла, а не с содержимого, которое представляет собой массив визуализации с настроенными полями.
Вы можете получить доступ к ссылочному объекту следующим образом {{ node.field_blog_author.entity }}
.
Оттуда вы можете снова перейти к полю объекта, на который ссылается ссылка, который вы хотите отобразить. Вы можете попробовать вызвать метод просмотра, с помощью которого вы будете просматривать его с настройками по умолчанию, вы также можете передать режим просмотра в виде строки к нему или настройкам отображения массива (не уверен в точном синтаксисе для этого в twig).
Кроме того, моя стандартная ссылка, см. http://wizzlern.nl/drupal/drupal-8-entity-cheat-sheet для подробного обзора сущностей контента, их структуры и способов доступа к значениям. Большая часть этого также относится к twig.
И, наконец, при попытке выяснить, что находится в сущности содержимого, используйте узел.toArray(), который дает вам представление массива, очень близкое к тому, как вы можете получить доступ это как объект. В то время как внутренняя структура совсем иная.