Sulu:如何获取相关文章标签网址?

问题描述

我收到了这样的相关(标记)新闻文章:

<property name="related" type="smart_content">
    <!-- @see https://docs.sulu.io/en/2.2/reference/content-types/smart_content.html -->
    <meta>
        <title lang="en">Related content</title>
        <title lang="de">Verwandte Inhalte </title>
    </meta>

    <params>
        <param name="provider" value="articles"/>
        <param name="types" value="news"/>
        <param name="max_per_page" value="3"/>
    </params>
</property>

这就像 3 篇“新闻”类型的文章。在过滤器选项(后端)中,我设置这些文章必须使用某些特定标签进行标记。

从页面树枝模板我可以打印这些标签,如:

    {% for related in content.related %}
        {% for tag in related.content.excerpt.tags %}
            {{ tag.name }} ({{ tag.id }})
        {% endfor %}
        <a href="{{ related.routePath }}">{{ related.title }}</a>
    {% endfor %}

我能做到的最好是获取标签名称和 ID。如何获取标签网址?如果我尝试以下操作:

 {{ sulu_tag_url(tag) }}

我得到“不能使用类型为 Sulu\Bundle\ArticleBundle\Document\TagViewObject 作为数组的对象”。 我可以以某种方式使用标签 ID 来获取它的网址吗?

解决方法

sulu_tag_url 扩展需要一个数组而不是 TagViewObject

扩展调用此方法TagRequestHandler::setTagToUrl。该方法只需要标签的 name 属性,所以最好的办法是使用标签的 name 创建一个对象。

例如{{ sulu_tag_url({'name': tag.name}) }}

但我同意您的看法,开发人员不希望 sulu_tag_url 扩展需要序列化的 Tag 对象。如果您不介意,您可以在 git repository 中为此创建一个问题。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...