Drupal 8-在twig中获取节点url

Drupal 8-在twig中获取节点url,drupal,twig,drupal-8,drupal-nodes,Drupal,Twig,Drupal 8,Drupal Nodes,我有一个内容类型,它指的是另一个内容类型(一对文章),它指的是一个内容类型(一篇文章) 当点击我的小枝上的文章块时,我想重定向到文章url,所以我想出了下面的代码 {% for i, value in node.field_articles_pairs %} <div class="related_article" onclick="onArticleClick({{ path('value.entity.field_articles[0]entity.node.canonica

我有一个内容类型,它指的是另一个内容类型(一对文章),它指的是一个内容类型(一篇文章)

当点击我的小枝上的文章块时,我想重定向到文章url,所以我想出了下面的代码

{% for i, value in node.field_articles_pairs %}

    <div class="related_article" onclick="onArticleClick({{ path('value.entity.field_articles[0]entity.node.canonical', {'node': node.id}) }})">

    </div>

    <div class="related_article" onclick="onArticleClick({{ path('value.entity.field_articles[0]entity.node.canonical', {'node': node.id}) }})">

    </div>

{% endfor %}

<script>
    function onArticleClick(link) {
        window.location.href = link;
    }
</script>
{%fori,node.field\u articles\u pairs%中的值]
{%endfor%}
ArticleClick上的函数(链接){
window.location.href=链接;
}
不幸的是,这不起作用,我有一个错误,说路线不存在


如何使用这种复杂的结构引用我的文章url?

有两种不同的方法可用于获取输出的节点/实体引用url:

  • 选项1:

  • 在结构>内容类型>父内容类型]设置下创建单独的显示模式(可能将其命名为“摘要”)
  • 然后创建一个节点类型并显示特定于模式的细枝模板(article--trister.html.twig)。在其中,您可以使用click handler输出
    相关文章
    div
  • 然后在现有的父节点类型细枝模板中,只需输出
    {{field\u articles\u pairs}}
    因为它将循环并拉取字段中引用的每个项目实体的自定义细枝模板
  • 选项2:


为引用/父内容类型添加自定义预处理节点功能,以包括每个字段值的URL。

我认为这应该是语法

{% for article_pair in node.field_articles_pairs %}
  {% for article in article_pair.entity.field_articles %}
    {{ path('entity.node.canonical', {'node': article.entity.id}) }}
  {% endfor %}
{% endfor %}

我认为path中的第一个参数是定义路径类型的字符串,而不是实体的值。

我最终创建了一个预处理,谢谢您的回答