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

时间:2015-06-12 12:40:35

标签: php laravel-5 homestead

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

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

enter image description here

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

3 个答案:

答案 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扩展,因此创建了该问题

所以,解决方案是 -

  1. 停用扩展程序
  2. 增加扩展程序的嵌套级别
  3. 在laravel中增加max_nesting_level
  4. 详细

    选项1 -

    要停用它,您可以关注this

    如果您使用的是WAMP Server,那么您可以通过转到 php.ini 轻松完成此操作 - enter image description here

    然后提交 -

    zend_extension = "c:/WAMP/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
    
    • 路径应该与PC不同
    • 在该行之前添加#是注释

    选项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