在一个重写的View模块模板(views-view-field.html.twig)中,我正在尝试访问字段的原始数据。
在doc文件中,我们可以读到:
* Available variables:
...
* - fields: A list of fields, each one contains:
...
* - raw: The raw data for the field, if it exists. This is NOT output safe.
...
但它总是空的。
{{ dump(fields.field_myfieldname) }}
print object(stdClass)[1899] ...
{{ dump(fields.field_myfieldname.raw) }}
print null
我希望raw从字段的值构建文件路径。
为什么它是空的? 还有其他方法可以在我的模板中获取字段的原始数据吗?
编辑: 我正在尝试做这样的事情:
<img src="/path/to/image/{{ fields.title.raw | escape('uri')}}.jpg" />
为什么这么难?
答案 0 :(得分:2)
您应该预先处理数据,然后在twig文件中引用新变量,而不是在twig文件中构建内容。
例如,如果您的自定义主题名为mytheme,则在mytheme.theme文件中添加以下功能
function mytheme_preprocess_field(&$variables, $hook) {
if( $variables['field_name'] === 'field_myfieldname') {
// manipulate the data and return it in a variable.
$data = $variables['items'][0]['content']['#context']['value'];
$variables['customfield'] = "Whatever you want, can be HTML";
}
}
然后在你的字段 - node - field-myfieldname.html.twig文件中,调用你的新变量
{{ customfield }}
如果您要返回html,请调用新变量
{{ customfield|raw }}