如何使用节点中的图像文件作为drupal 8 twig模板中div的背景图像?

时间:2016-01-11 13:06:26

标签: twig drupal-8

我正在尝试创建一个内容类型的视图块,并使用该节点的图像字段值作为块模板文件中div的背景图像。但我无法在twig文件中获取图像文件URL,以便可以将其用作背景图像。有没有办法在twig模板中获取该字段的原始值?

3 个答案:

答案 0 :(得分:1)

使用Paragraphs轻松完成。启用并创建一个段落,随意调用它(阻止背景图像)。你需要2个字段,一个用于背景图像,一个用于块参考。然后,您可以添加一个包含2个区域的布局,一个用于背景图像,另一个用于块。在管理显示中更新它。然后,您需要更新基本页面并添加段落字段,以便您可以选择在页面上使用它。

否则,请尝试使用此代码获取图像路径:

{{ file_url(element['#object'].field_name.0.entity.uri.value) }}

只需将“field_name”更改为图片的计算机名称即可。

答案 1 :(得分:1)

我在Drupal 8中解决了:

[{"ID":"1","INMILLIS":"1474045680982","OUTMILLIS":"1474046580983","COMPLETE":"1"}]

答案 2 :(得分:0)

类似我试图在树枝模板中使用颜色字段的原始字段值。首先我使用了错误的预处理器,但后来我尝试了hook_preprocess_page。这对我有用。

$variables['bgcolor']  = $variables['node']->field_bgcolor->color;

因此,如果您想在page.html.twig中使用您的变量,请使用

function yourtheme_preprocess_page(&$variables) {
$image_id = $variables['node']->field_yourimagefield->target_id;
$image_file  = file_load($image_id);
$image_public_uri = $image_file->getFileUri();
$variables['image_url'] = file_create_url($image_public_uri);
// var_dump($variables['image_url']);
}

也许你可以缩短它,但这样它更具可读性。

之后(清除缓存后),您可以在树枝模板

中访问您的值
{{ image_url }}