繁体   English   中英

达到'100'的最大功能嵌套级别,升级到Laravel 5.1后中止

[英]Maximum function nesting level of '100' reached, aborting after upgrading to Laravel 5.1

升级到Laravel 5.1后,我在Laravel应用程序中收到此错误消息。

FatalErrorException in Dispatcher.php line 200:
Maximum function nesting level of '100' reached, aborting!

在此输入图像描述

我的应用的某些网址会出现此问题。 我做了几十个composer update但问题仍然存在。 任何建议都将受到赞赏

问题是由默认的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));

由于Apache- php_xdebug中有1个PHP扩展,因此创建了该问题

所以,解决方案是 -

  1. 禁用扩展程序
  2. 增加扩展的嵌套级别
  3. 增加max_nesting_level在laravel

详细地

选项1-

要禁用它,您可以按照此操作

如果您使用的是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"
  • 路径应该与PC不同
  • 在行之前添加#是注释

选项2-

您可以通过这种方式增加限制。

如果您使用的是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);

你会完成:)

此问题是由于xdebug扩展已启用,要解决此问题,您必须禁用xdebug扩展或编辑php.ini文件并将xdebug.max_nesting_level更改为200(默认情况下此参数不包含在php.ini中且必须添加它))

喜欢 :

xdebug.max_nesting_level = 200

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM