2014-11-15 69 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