0

我正在使用十月 CMS 创建一个多语言网站,使用Rainlab TranslateVojta Svoboda Twig Extensions插件。我正在使用 twig 函数template_from_string在我的一个模板文件中创建一个链接按钮。

如果我在链接属性中使用|media过滤器来获取媒体文件的 url,一切都会按预期工作。但是,如果我使用|page过滤器来获取页面网址,则会收到Unknown "page" filter错误。

<!-- It works: -->
<div>
    {% set btn = {
        'link': 'foobar.jpg',
        'label': 'Where is FooBar »'
    } %}
    {{ include(template_from_string('<a class="btn btn-promo btn-white move" href="{{ btn.link|media }}" role="button">{{ btn.label }}</a>')) }}
</div>


<!-- It does not work: -->
<div>
    {% set btn = {
        'link': 'foobar',
        'label': 'Where is FooBar »'
    } %}
    {{ include(template_from_string('<a class="btn btn-promo btn-white move" href="{{ btn.link|page }}" role="button">{{ btn.label }}</a>')) }}
</div>

我被困在这个问题上,我的问题是:我怎样才能让两个过滤器都工作?预先感谢您的帮助。

4

1 回答 1

1

我认为你忽略了一些东西:)

你可以这样使用

<div>
    {% set btn = {
        'link': 'fooba'|page, <-- HERE
        'label': 'Where is FooBar »'
    } %}
    {{ include(template_from_string('<a class="btn btn-promo btn-white move" href="{{ btn.link }}" role="button">{{ btn.label }}</a>')) }}
</div>

您可以使用filter on main scope并直接通过filtered value。你不需要在里面使用过滤器template_from_string

如有任何疑问,请发表评论。

于 2020-10-20T12:13:17.857 回答