我有一系列针对 Twig 变量的模板{{ file }}
,它当前输出文件的 src 例如"/path/to/file.jpg"
。
我想将文件的内容更新为一个数组,以便它存储多个属性,例如{{ file.src }} {{ file.size }}
.
如果我做出这个改变,那么所有的使用都{{ file }}
将输出Array。
是否可以设置 Twig 使其改为以数组的第一个属性为目标?在这种情况下{{ file.src }}
。
非常感谢!
我有一系列针对 Twig 变量的模板{{ file }}
,它当前输出文件的 src 例如"/path/to/file.jpg"
。
我想将文件的内容更新为一个数组,以便它存储多个属性,例如{{ file.src }} {{ file.size }}
.
如果我做出这个改变,那么所有的使用都{{ file }}
将输出Array。
是否可以设置 Twig 使其改为以数组的第一个属性为目标?在这种情况下{{ file.src }}
。
非常感谢!
如果您的变量是纯数组,则不能,但您可以使用对象来完成。
如果您希望您的对象像数组一样可用,则需要在您的类中扩展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) 享受