在 Drupal 8 视图模板中访问原始数据
Acces raw data in Drupal 8 view template
在视图模块 (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) }}
打印对象(stdClass)[1899] ...
{{ dump(fields.field_myfieldname.raw) }}
打印空值
我希望 raw 从字段的值构建文件路径。
为什么是空的?
有没有其他方法可以获取模板中某个字段的原始数据?
编辑:
我正在尝试做这样的事情:
<img src="/path/to/image/{{ fields.title.raw | escape('uri')}}.jpg" />
为什么这么难?
与其在 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";
}
}
然后在你的field--node--field-myfieldname.html.twig文件中,调用你的新变量
{{ customfield }}
如果您要返回 html,请像这样调用您的新变量
{{ customfield|raw }}
在视图模块 (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) }}
打印对象(stdClass)[1899] ...
{{ dump(fields.field_myfieldname.raw) }}
打印空值
我希望 raw 从字段的值构建文件路径。
为什么是空的? 有没有其他方法可以获取模板中某个字段的原始数据?
编辑: 我正在尝试做这样的事情:
<img src="/path/to/image/{{ fields.title.raw | escape('uri')}}.jpg" />
为什么这么难?
与其在 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";
}
}
然后在你的field--node--field-myfieldname.html.twig文件中,调用你的新变量
{{ customfield }}
如果您要返回 html,请像这样调用您的新变量
{{ customfield|raw }}