升级到Laravel 5.1后,我在Laravel应用程序中收到此错误消息。
FatalErrorException in Dispatcher.php line 200:
Maximum function nesting level of '100' reached, aborting!
我的应用的某些网址上会出现此问题。我做了几十个composer update
,但问题仍然存在。任何建议都将受到赞赏
答案 0 :(得分:48)
问题是由默认xdebug.max_nesting_level
引起的,即100。
现在的解决方法是将xdebug.max_nesting_level
增加到某个级别,例如200或300或400
我通过将下面的行添加到Laravel 5.1中的bootstrap/autoload.php
来将xdebug.max_nesting_level增加到120来修复我的
ini_set('xdebug.max_nesting_level', 120);
.........
define('LARAVEL_START', microtime(true));
答案 1 :(得分:9)
由于Apache- php_xdebug
中有1个PHP扩展,因此创建了该问题所以,解决方案是 -
max_nesting_level
选项1 -
要停用它,您可以关注this。
如果您使用的是WAMP Server,那么您可以通过转到 php.ini 轻松完成此操作 -
然后提交 -
zend_extension = "c:/WAMP/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
选项2 -
您可以按this方式增加限制。
如果您使用WAMP Server,那么您可以通过转到 php.ini -
轻松完成在zend_extension = "c:/WAMP/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
之后,应该有类似的东西 -
[xdebug]
xdebug.remote_enable = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/WAMP/tmp"
xdebug.show_local_vars=0
然后,只需在那里添加1行 -
xdebug.max_nesting_level=500
选项3 -
您还可以在Laravel autoload.php文件中设置此配置。
您只需在文件中添加此行(文件中的任何位置) -
即可ini_set('xdebug.max_nesting_level', 500);
你将完成:)
答案 2 :(得分:0)
此问题是由于xdebug扩展已启用, 要解决此问题,您必须禁用xdebug扩展或编辑php.ini文件并将 xdebug.max_nesting_level 更改为200(默认情况下,此参数不包含在php.ini中并且必须添加它)< / p>
喜欢:
<强> xdebug.max_nesting_level = 200 强>