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

时间:2013-04-26 21:46:40

标签: twig

我有一系列以Twig变量{{ file }}为目标的模板,目前输出文件的src,例如"/path/to/file.jpg"

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

如果我进行此更改,则{{ file }}的所有使用都将输出数组

是否可以设置Twig,以便它将改为以数组的第一个属性为目标?在这种情况下{{ file.src }}

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您的变量是数组,则不能,但您可以使用对象执行此操作。

  • 如果您希望对象像数组一样可用,则需要在班级中扩展ArrayObject

  • 您可以实施魔术方法__toString,使您的对象可以打印为字符串(在您的情况下为$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)在你的twig文件中,试一试:

{{ file }}<br/>
{{ file.src }}<br/>
{{ file.size }}<br/>

4)享受

enter image description here