当属性不存在时,为什么Twig会退回到对象上?

时间:2018-09-20 15:26:14

标签: php symfony twig

我正在尝试在模板上打印对象的属性:

{{ MyObject.itsProperty }}

问题是,未设置此属性,__isset将返回false,而__get将返回null

Twig尝试不打印任何内容,而是尝试打印MyObject从而导致错误:

  

可恢复的致命错误:MyObject类的对象不能为   转换成字符串   ..... vendor / twig / twig / lib / Twig / Environment.php(378):eval()的代码在   第54行

strict_variables设置为false并没有帮助。如何处理?

1 个答案:

答案 0 :(得分:0)

正如@GentlemanMax指出的那样,Twig将尝试调用方法以及属性,以尝试解析点运算符。 可能会导致调用__get和__call魔术方法。

我的问题是__call的实现返回了$ this,导致了我上面提到的错误。

感谢@GentlemanMax和其他所有人帮助我。