我正在使用树枝在Drupal 8中构建一个主题视图。我想在views-view-unformatted.html.twig模板中的row.content变量上使用twig过滤器。
似乎row.content是一个数组,所以twig的字符串操作不起作用。但是,它以字符串形式打印到页面上(视图只是分类术语列表)。
我想做的是对输出进行重击,因此使用空格的分类术语可以有有效的href。请参阅以下代码中的替换过滤器。
<ul class="nav nav-tabs" role="tablist">
{% for row in rows %}
<li role="presentation" class="{{loop.first ? 'active' : ''}}">
<a href="#{{row.content | replace({" ", "-"})}}" aria-controls="{{row.content}}" role="tab" data-toggle="tab">{{row.content}}</a>
</li>
{% endfor %}
</ul>
这只会输出<a href="#">
。有谁知道如何访问在树枝插值期间输出的原始文本值?
谢谢!
答案 0 :(得分:1)
我自己遇到这个问题很难,因为kint和dump在视图上崩溃了。 虽然有一个快速的解决方法,但是在你的树枝视图样式模板中将它放在 {%for rows in rows%} 下。
<ol>
{% for key, value in row.content %}
<li>{{ key }}</li>
{% endfor %}
</ol>
加载页面&amp;给你看键,我用下面的dump命令检查它们,只是添加到下面测试。
{{ dump(row.content['#row']) }}
上面的转储显示了#row中的所有商品,我在其中挖掘并在_entity中找到了我想要的字段(可能对你不同),然后我想用破折号替换空格并强制小写。
过去 row.content ['#row'] 的所有内容可能与您有所不同,您需要使用上面提到的dump命令挖掘数组。 下面是让我想要的东西。
{{ row.content['#row']._entity.title[0].value|replace(' ', '-')|lower }}
下面是twig模板示例。 对于文件名更改 viewname 和 block-3 到您的设置。
<强>视图 - 视图 - 无格式 - 视图名 - 嵌段 - 3.html.twig 强>
{% for row in rows %}
{%
set row_classes = [
default_row_class ? 'views-row',
'something',
'kint-cant',
]
%}
{# My field value unformatted #}
<!-- {{ row.content['#row']._entity.title[0].value }} -->
<section{{ row.attributes.addClass(row_classes) }} id="{{ row.content['#row']._entity.title[0].value|replace(' ', '-')|lower }}">
{{ row.content }}
</section>
{% endfor %}
我确定有很多其他方法可以做到这一点,但它对我来说是一个快速的解决方案,可以在样式模板中打印出视图字段,这非常有用。