在Drupal 8视图模板中访问原始数据

时间:2016-01-28 12:04:30

标签: drupal view twig drupal-8

在一个重写的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" /> 

为什么这么难?

1 个答案:

答案 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 }}