【发布时间】:2017-02-22 11:03:50
【问题描述】:
这里是业余爱好者。
使用 Symfony 2.6.13。
生产环境:AWS Linux、Elastic Beanstalk。 开发环境:WAMP。
我有一个让我感到困惑的错误,因为它只会导致我在开发中出现问题。以下是生产错误日志的摘录:
[Wed Feb 22 10:40:16.484644 2017] [:error] [pid 12453] [client 172.31.46.85:18619] PHP Notice: Array to string conversion in /var/app/current/app/cache/prod/twig/db/dbafcb45562bb5839ccefc3c501bc398a96f8c34fd19c0f11d60122efe04cb15.php on line 220, referer: https://xxx-xxx.xxx.com/contact/986513/risk/1
我在生产和开发环境中都收到此错误。在生产中,错误似乎被忽略并且页面加载。在开发中,该错误不会被忽略,并且页面错误说明如下:
CRITICAL: Uncaught PHP Exception Twig_Error_Runtime: "An exception has been thrown during the rendering of a template ("Notice: Array to string conversion")
为什么在生产中会忽略此错误,但在开发中不会?
【问题讨论】:
-
可能是因为生产没有像开发那样在php.ini中配置错误报告。在模板中找到它试图显示的变量,因为它是一个字符串。我的意思是你有没有尝试解决这个问题?
-
ive 反映了 WAMP 中的开发设置。我已经关闭了 wamp 和 AWS(生产)的错误报告。
-
您可能在 twig 中使用了 {{variable}},变量将是数组类型,这是您遇到异常的原因之一。
-
@user1077250 在开发环境中关闭错误报告不是解决方案。此外,这个错误似乎并不难。查看模板中的变量,将每个变量放入 dump() 函数中,看看哪个是意外数组。像这样:
{{ dump(someVar) }}. -
"在开发过程中需要将错误直接转储到屏幕上(除非您有其他方法会在您的脸上抛出所有错误),在生产中您需要相同的错误报告,而不是输出可见的错误,你希望它只记录它们。” stackoverflow.com/a/17135464/2484968
标签: php symfony amazon-web-services