Bagaimana cara mendapatkan URL simpul di templat Ranting?


22

Saya mencoba untuk mendapatkan URL simpul dalam templat ranting. {{ content.node_link }}mengembalikan tautan lengkap, tetapi saya hanya perlu URL.

Bagaimana cara mengambil URL simpul?


4
Jika Anda melihat di templat simpul, Anda akan melihat bahwa itu urladalah variabel yang tersedia. Jadi hanya dengan mencetak {{ url }}misalnya akan membuat URL mentah, /node/[nid]yaitu /node/30tanpa markup pembungkus. Itukah yang ingin Anda lakukan?
Danny Englander

Jawaban:


30

Menurut Fungsi - Di Ranting Template yang dapat Anda gunakan adalah sederhana dengan

 {{ path('entity.node.canonical', {'node': node.id}) }}

3
Solusi ini berfungsi, dan cukup asyik. Tetapi menggunakan {{url}} dalam node--templat ranting berbasis akan memberi Anda hasil yang sama.
Eric Steinborn

11

Di node.html.twig Anda bisa langsung menggunakan {{ url }}

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

Untuk informasi lebih lanjut baca komentar di templat inti /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 }}

Anda harus menjelaskan jawaban Anda lebih daripada "sederhananya". Penjelasan, seperti apa yang ditulis oleh @Danny Englander dalam komentar pertanyaan, membantu penanya dan orang lain untuk mempelajari lebih lanjut tentang bagaimana Anda mendapatkan jawaban Anda dan bagaimana mereka dapat membantu diri mereka sendiri di masa depan.
mradcliffe

Ini adalah metode termudah, menggunakan variabel bawaan dalam templat ranting simpul.
Eric Steinborn

Itu seharusnya jawaban yang diterima
Kapsul

7

Saya telah menemukan solusi ini yang berfungsi, tetapi cukup berbelit-belit.

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

4
Anda dapat menggunakan node.idsebagai ganticontent['#node'].id()
4k4

2
Saya sedang bekerja dalam tampilan dengan template tampilan suite dan 'node' bukan salah satu kunci yang tersedia. {{dump (_context | keys)}} hanya memberikan kunci-kunci ini: 'konten', 'theme_hook_original', 'atribut', 'title_attributes', 'content_prefix', 'title_prefix', 'title_suffix', 'db_is_active', 'is_admin' , 'login_in', 'pengguna', 'direktori', 'pengaturan', 'tata letak', '#cache', 'theme_hook_suggestions'
inalto

Solusi hebat untuk templat tampilan suite. @ 4k4 content['#node'].id()benar untuk konteks DS.
masterchief
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.