如何将变量传递给 Twig 过滤器

How to pass a variable to a Twig Filter

如何将变量传递给 Twig 过滤器以实现如下目的: <img src="{{ post.thumbnail.src|resize(thumbsize) }}" /> 这里的 thumbsize 是我要传递给过滤器的变量,这可能吗?

过滤器 resize 似乎需要 2 个参数才能工作(请参阅评论)。 目前 var thumbsize 像字符串一样传递,因此被视为一个参数。

您可以将 var thumbsize 从字符串更改为数组,然后像这样传递它:

{{ post.thumbnail.src|resize(thumbsize[0],thumbsize[1]) }}

在您的 PHP 文件中,您需要定义 thumbsize 并为其赋值:

此示例仅设置宽度并具有高度比例:

$context = Timber::get_context(); $context['thumbsize'] = 300; Timber::render('my-template.twig', $context); 然后在树枝上: <img src="{{ post.thumbnail.src|resize(thumbsize) }}" />

这个例子是设置宽度和高度的值

$context = Timber::get_context(); $context['thumbsize'] = array('width' => 600, 'height' => 400); Timber::render('my-template.twig', $context); 然后在树枝上: <img src="{{ post.thumbnail.src|resize(thumbsize.width, thumbsize.height) }}" />