나뭇 가지 템플릿에서 노드 URL을 얻으려면 어떻게해야합니까?


22

나뭇 가지 템플릿에서 노드 URL을 가져 오려고합니다. {{ content.node_link }}전체 링크를 반환하지만 URL 만 필요합니다.

노드 URL을 어떻게 검색합니까?


4
노드 템플릿을 보면 url사용 가능한 변수 임을 알 수 있습니다. {{ url }}예를 들어 단순히 인쇄 하면 원시 URL이 렌더링됩니다 ( /node/[nid]예 : /node/30줄 바꿈 마크 업 없음). 그게 당신이 찾고있는 것입니까?
Danny Englander

답변:


30

기능 에 따르면 -나뭇 가지 템플릿에서 사용하는 것은 간단합니다.

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

3
이 솔루션은 효과가 있으며 그루비입니다. 그러나 node--기본 나뭇 가지 템플릿 에서 {{url}} 을 사용하면 동일한 결과를 얻을 수 있습니다.
Eric Steinborn

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

이는 노드 나뭇 가지 템플릿에 내장 변수를 사용하는 가장 쉬운 방법입니다.
Eric Steinborn

정답입니다
Capsule

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', '사용자', '디렉토리', '설정', '레이아웃', '#cache', 'theme_hook_suggestions를'
inalto

디스플레이 제품군 템플릿을위한 훌륭한 솔루션입니다. @ 4k4 content['#node'].id()는 DS 컨텍스트에 맞습니다.
masterchief
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.