2014-11-15 70 views
0

我不知道发生了什么,但现在看来,最近的一些库的更新过程中,我再也不能上传文件,而无需得到以下Laravel错误:循环依赖防止文件上传

[2014-11-15 21:27:25] local.ERROR: 500 - Maximum function nesting level of '100' reached, aborting! @ /uploads/0/1 
exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Maximum function nesting level of '100' reached, aborting!' in /home/vagrant/Projects/test.dev/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php:480 
Stack trace: 
#0 [internal function]: Illuminate\Exception\Handler->handleShutdown() 
#1 {main} [] [] 

堆栈跟踪没有提供有用的信息。

即使在该路由的方法开始时,中断脚本也什么都不做,所以它不是我自己代码中的东西。

任何人在最新的Laravel 4.2中都看到过这个错误?

回答

0

这是由于我拉进父控制器并忘记它的方法导致的。显然Laravel不喜欢这种方式访问​​的路线。将其拉回到子控制器允许其正常工作。

0

这不是一个错误。 PHP有限制递归函数。此限制默认为100

如果你想增加这个限制使用XDebug。

1

其实,出现因为XDebug extension.You此错误消息可能会增加限制在php.ini文件:

xdebug.max_nesting_level = 200 

此外,它可能是一个递归函数调用,从而试图找出如果你有在您的代码中进行优化。太多的递归导致stackoverflowstack内存溢出)。

+0

我想不出它需要缓解的原因。这是一条简单的路线。如果情况很深,可能会出现问题。 – eComEvo

+0

不确定,没有看到您或扩展程序正在使用的任何代码。 –

+1

只需使用FileAPI通过AJAX进行简单上传即可。我没有改变我自己的任何代码,所以我不知道要给你看什么。 Container.php中的第480行用于从'make'调用的'getConcrete'中调用的函数'missingLeadingSlash'。我没有看到任何可能导致递归的地方,所以我有点困惑。 – eComEvo