我正在部署我的Symfony2应用程序,但是我收到以下错误:
FatalErrorException in classes.php line 0:
Error: Method Symfony\Component\HttpFoundation\Request::__toString() must not throw an exception
Run Code Online (Sandbox Code Playgroud)
Apache稍微有点描述性,说明了Monolog:
PHP Fatal error: Method Symfony\\Component\\HttpFoundation\\Request::__toString() must not throw an exception in /my/path/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php on line 0
Run Code Online (Sandbox Code Playgroud)
这也是我唯一不清楚这是如何发生的事情.我本地机器上的开发环境运行正常.
我试图清除prod缓存,composer缓存和重新启动的apache服务.清除缓存后,我还做了一个新的"作曲家安装".
任何人都知道如何解决这个问题?我正在运行Symfony v2.7.4.
例如,您应该检查您的 $_COOKIE 或 $_SESSION ;问题是你可能在 $_COOKIE 中有数组值,所以在你的调试环境中你可能会陷入以下情况:
Debug::enable() //see, i don't exclude E_NOTICE here
$request = Request::createFromGlobals();
echo $request->__toString();
//so, from now you've got your Exception because of
//Debug package converts E_NOTICE to Fatal
//which turns into Exception
Run Code Online (Sandbox Code Playgroud)
因此,如果你想解决这个问题,你需要:
Debug::enable(~E_NOTICE);或者如果可能的话,从您的代码中删除(string)$request;
请参阅请求代码:
//part of __toString() method
foreach ($this->cookies as $k => $v) {
$cookies[] = $k.'='.$v;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1346 次 |
| 最近记录: |