Twig 模板引擎不读取对象属性
Posted
技术标签:
【中文标题】Twig 模板引擎不读取对象属性【英文标题】:Twig template engine not reading object properties 【发布时间】:2012-12-21 22:25:42 【问题描述】:Twig 允许您将数组或对象传递给模板,并为您提供相同的接口来访问两种数据结构的成员。 所以,例如:
$test = array('foo' => 'foo', 'bar' => 'bar');
将让您以test.foo
和test.bar
的身份在模板中访问它
现在这个对象的实例将具有相同的效果。太棒了:)
class test
public $foo;
public $bar;
使用魔术 __set 和 __get 方法的对象怎么样?
class test
public $properties;
public function __set($name, $value)
$this->properties[$name] = $value;
public function __get($name)
return $this->properties[$name];
很遗憾,在这种情况下,您无法访问该对象的属性。 我不确定 Twig 是这里的问题还是 PHP 本身的问题。
【问题讨论】:
【参考方案1】:你还需要实现__isset()
,例如
public function __isset($name)
return array_key_exists($name, $this->properties);
见http://twig.sensiolabs.org/doc/recipes.html#using-dynamic-object-properties
【讨论】:
啊,谢谢!我是新手,必须有一些简单的解决方案。 Phil 你知道如何获得可迭代对象的大小吗?obj|length
似乎不起作用。
@marcin_koss 你最好打开另一个问题,但我猜,我会先尝试实现Countable
以上是关于Twig 模板引擎不读取对象属性的主要内容,如果未能解决你的问题,请参考以下文章
我可以在 symfony 中使用刀片模板引擎(laravel)吗?