0

我有一系列针对 Twig 变量的模板{{ file }},它当前输出文件的 src 例如"/path/to/file.jpg"

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

如果我做出这个改变,那么所有的使用都{{ file }}将输出Array

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

非常感谢!

4

1 回答 1

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)在您的树枝文件中,尝试一下:

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

4) 享受

在此处输入图像描述

于 2013-04-27T17:08:49.443 回答