Twig-如果引用了数组,则输出数组键

Twig-如果引用了数组,则输出数组键,twig,Twig,我有一系列的模板,目标是Twig变量{{file},它当前输出文件的src,例如“/path/to/file.jpg” 我想将文件的内容更新为一个数组,以便它存储多个属性,例如{{file.src}}{{file.size} 如果我做了这个更改,那么{{file}}的所有使用都将输出数组 是否可以设置Twig,使其以数组的第一个属性为目标?在本例中,{{file.src}} 非常感谢 如果变量是纯数组,则不能这样做,但可以使用对象 如果希望对象像数组一样可用,则需要在类中进行扩展 您可以实现m

我有一系列的模板,目标是Twig变量
{{file}
,它当前输出文件的src,例如
“/path/to/file.jpg”

我想将文件的内容更新为一个数组,以便它存储多个属性,例如
{{file.src}}{{file.size}

如果我做了这个更改,那么
{{file}}
的所有使用都将输出数组

是否可以设置Twig,使其以数组的第一个属性为目标?在本例中,
{{file.src}}


非常感谢

如果变量是纯数组,则不能这样做,但可以使用对象

  • 如果希望对象像数组一样可用,则需要在类中进行扩展

  • 您可以实现magic方法,使对象可以作为字符串打印(在您的示例中,
    $this['src']

让我们举个例子

1) 创建以下类:

class File extends \ArrayObject
{
    public function __toString()
    {
        if (isset($this['src']))
        {
            return $this['src'];
        }
    }
}
2) 在控制器中,初始化对象

$file = new File();
$file['src'] = 'my_file.png';
$file['size'] = 42;
3) 在细枝文件中,尝试以下操作:

{{ file }}<br/>
{{ file.src }}<br/>
{{ file.size }}<br/>
{{file}}
{{file.src}}
{{file.size}}
4) 享受