Drupal 8 - 在树枝中获取节点 url
Drupal 8 - Get a node url in twig
我有一个内容类型引用另一个内容类型(一对文章),而另一个内容类型引用一个内容类型(一篇文章)。
我想在我的树枝上点击文章块时重定向到文章 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>
不幸的是,这不起作用,我收到一条错误消息,提示该路线不存在。
如何引用结构复杂的文章 url?
您可以使用两种不同的方法来获取 node/entity 参考 url 输出:
选项 1:
- 在结构 > 内容类型 > [父内容类型] 设置下创建一个单独的显示模式(可能将其命名为 "teaser")。
- 然后创建 node-type 和 display-mode-specific 树枝模板(文章--teaser.html.twig)。在其中,您可以使用点击处理程序输出
related_article
div。
- 然后在你现有的父 node-type 树枝模板中,你可以简单地输出
{{field_articles_pairs}}
因为它将遍历并为字段中引用的每个文章实体提取自定义树枝模板。
选项2:
为 referencing/parent 内容类型添加自定义预处理节点功能,以将 url 包含在每个 field_articles 值中。
我认为这应该是语法?
{% 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 %}
我认为路径中的第一个参数是定义路径类型的字符串,而不是实体的值。
我有一个内容类型引用另一个内容类型(一对文章),而另一个内容类型引用一个内容类型(一篇文章)。
我想在我的树枝上点击文章块时重定向到文章 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>
不幸的是,这不起作用,我收到一条错误消息,提示该路线不存在。
如何引用结构复杂的文章 url?
您可以使用两种不同的方法来获取 node/entity 参考 url 输出:
选项 1:
- 在结构 > 内容类型 > [父内容类型] 设置下创建一个单独的显示模式(可能将其命名为 "teaser")。
- 然后创建 node-type 和 display-mode-specific 树枝模板(文章--teaser.html.twig)。在其中,您可以使用点击处理程序输出
related_article
div。 - 然后在你现有的父 node-type 树枝模板中,你可以简单地输出
{{field_articles_pairs}}
因为它将遍历并为字段中引用的每个文章实体提取自定义树枝模板。
选项2:
为 referencing/parent 内容类型添加自定义预处理节点功能,以将 url 包含在每个 field_articles 值中。
我认为这应该是语法?
{% 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 %}
我认为路径中的第一个参数是定义路径类型的字符串,而不是实体的值。