php - 当属性不存在时,为什么 Twig 会退回到对象?
问题描述
我正在尝试在模板上打印对象的属性:
{{ MyObject.itsProperty }}
问题是,此属性未设置,__isset
将返回false
并将__get
返回null
。
Twig 没有打印任何内容并保留它,而是尝试打印 MyObject ,这会导致错误:
可恢复的致命错误:MyObject 类的对象无法在 .....vendor/twig/twig/lib/Twig/Environment.php(378) 中转换为字符串:第 54 行的 eval() 代码
设置strict_variables
为false
没有帮助。如何处理?
解决方案
正如@GentlemanMax 指出的那样,Twig 将尝试调用方法和属性以尝试解析点运算符。这可能会导致调用 __get 和 __call 魔术方法。
我的问题是我的 __call 实现返回了 $this,导致了我上面提到的错误。
感谢@GentlemanMax 和其他所有人帮助我。
推荐阅读
- java - 在聚合类中使用克隆的最佳实践
- authentication - Python imaplib:无论凭据是否正确,雅虎帐户的身份验证都失败
- python - 从 shell 脚本向 python 传递参数
- google-sheets - 将 Google 表格查询结果从一行拆分为两行
- python - 如何使用 Python 从字符串中删除插入符号(^@)?
- python - 我该如何处理“只能将str(不是“StringVar”)连接到str”
- javascript - 使用 transition.end() 承诺链接转换
- sql - 在第二列中存储日期加上 45 天
- python - Pandas strip 函数也会删除数值
- java - 管理员和用户的访问权限