Як отримати URL-адресу вузла в шаблоні Twig?


22

Я намагаюся отримати URL-адресу вузла в шаблоні Twig. {{ content.node_link }}повертає повне посилання, але мені потрібна лише URL-адреса.

Як отримати URL-адресу вузла?


4
Якщо ви заглянете в шаблон вузла, ви побачите, що urlце доступна змінна. Таким чином, проста друк, {{ url }}наприклад, відобразить необроблену URL-адресу, /node/[nid]тобто /node/30без будь-якої розмітки. Це те, що ви шукаєте?
Danny Englander

Відповіді:



11

У node.html.twig ви можете безпосередньо використовувати {{ url }}

<a href="{{ url }}">read more</a>

Для отримання додаткової інформації читайте коментар в основному шаблоні /core/modules/node/templates/node.html.twig:

{#
/**
 * @file
 * Default theme implementation to display a node.
 *
 * Available variables:
 * - node: The node entity with limited access to object properties and methods.
 * ...
 * - url: Direct URL of the current node.
 * ...
#}
...

<article{{ attributes }}>

  {{ title_prefix }}
  {% if not page %}
    <h2{{ title_attributes }}>
      <a href="{{ url }}" rel="bookmark">{{ label }}</a>
    </h2>
  {% endif %}
  {{ title_suffix }}

Свою відповідь слід пояснювати скоріше, ніж «просто покласти». Пояснення, наприклад, те, що @Danny Englander написав у коментарі до запитання, допомагає запитувачу та іншим дізнатися більше про те, як ви придумали свою відповідь і як вони можуть допомогти собі в майбутньому.
mradcliffe

Це найпростіший метод, використовуючи вбудовану змінну в шаблон вузла гілочки.
Ерік Штейнборн

Такою має бути прийнята відповідь
Капсула

7

Я знайшов це рішення, яке працює, але є доволі викривленим.

{{ path('entity.node.canonical', {'node': content['#node'].id()  }) }}

4
Ви можете використовувати node.idзамістьcontent['#node'].id()
4k4

2
Я працюю з оглядом шаблону набору дисплеїв, і «вузол» - не одна з доступних клавіш. {{dump (_context | keys)}} надає ці ключі лише: 'content', 'theme_hook_original', 'attributes', 'title_attributes', 'content_attributes', 'title_prefix', 'title_suffix', 'db_is_active', 'is_admin' , 'logged_in', 'user', 'directory', 'settings', 'layout', '#cache', 'topic_hook_suggestions'
inalto

Відмінне рішення для шаблонів набору дисплеїв. @ 4k4 content['#node'].id()є правильним для контексту DS.
майстерність
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.