我有一个内容类型,指的是另一种内容类型(一对文章(,它指的是内容类型(一篇文章(。
我想在我的树枝上单击文章块时重定向到文章 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>
不幸的是,这不起作用,我有一个错误,说该路由不存在。
我怎样才能用这种复杂的结构引用我的文章网址?
我相信这应该是语法吗?
{% 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:
-
选项 1:
- 在"内容类型>结构">[父内容类型]设置下创建单独的显示模式(可以将其命名为"预告片"(。
- 然后创建一个节点类型和特定于显示模式的树枝模板(文章--teaser.html.twig(。在其中,您可以使用单击处理程序输出
related_article
div。 - 然后在现有的父节点类型的 twig 模板中,您可以简单地输出
{{field_articles_pairs}}
因为它将循环并拉取字段中引用的每个文章实体的自定义 twig 模板。
-
选项 2:
为引用/父内容类型添加自定义预处理节点功能,以包含每个field_articles值的 URL。