Làm cách nào để có được URL nút trong mẫu Twig?


22

Tôi đang cố gắng để có được URL nút trong mẫu Twig. {{ content.node_link }}trả về liên kết đầy đủ, nhưng tôi chỉ cần URL.

Làm cách nào để truy xuất URL nút?


4
Nếu bạn nhìn vào mẫu nút, bạn sẽ thấy đó urllà một biến có sẵn. Do đó, chỉ cần in {{ url }}ví dụ sẽ hiển thị URL thô, /node/[nid]tức là /node/30không có bất kỳ đánh dấu gói nào. Đó có phải là những gì bạn đang muốn làm?
Daniel Englander

Câu trả lời:


30

Theo Chức năng - Trong Twig Mẫu bạn có thể sử dụng rất đơn giản bằng cách

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

3
Giải pháp này hoạt động, và khá hấp dẫn. Nhưng sử dụng {{url}} trong node--mẫu twig dựa trên sẽ cho bạn kết quả tương tự.
Eric Steinborn

11

Trong một nút.html.twig bạn có thể trực tiếp sử dụng {{ url }}

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

Để biết thêm thông tin đọc bình luận trong mẫu cốt lõi /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 }}

Bạn nên giải thích câu trả lời của bạn nhiều hơn là "chỉ cần đặt". Một lời giải thích, chẳng hạn như những gì @Danny Englander đã viết trong phần bình luận câu hỏi, giúp người hỏi và những người khác tìm hiểu thêm về cách bạn đưa ra câu trả lời của bạn và cách họ có thể tự giúp mình trong tương lai.
mradcliffe

Đây là phương pháp đơn giản nhất, sử dụng biến tích hợp trong mẫu twig nút.
Eric Steinborn

Đó phải là câu trả lời được chấp nhận
Capsule

7

Tôi đã tìm thấy giải pháp này hoạt động, nhưng khá phức tạp.

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

4
Bạn có thể sử dụng node.idthay vìcontent['#node'].id()
4k4

2
Tôi đang làm việc trong chế độ xem với mẫu bộ hiển thị và 'nút' không phải là một trong các khóa khả dụng. {{dump (_context | key)}} chỉ cung cấp các khóa này: 'content', 'theme_hook_origen', 'thuộc tính', 'title_attribut', 'content_attribut', 'title_prefix', 'title_suffix', 'db_is_active', ' , 'Log_in', 'người dùng', 'thư mục', 'cài đặt', 'bố cục', '#cache', 'theme_hook_suggestions'
inalto

Giải pháp tuyệt vời cho các mẫu bộ hiển thị. @ 4k4 content['#node'].id()là chính xác cho bối cảnh DS.
mưu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.