2014-10-18 192 views
0

我正在創建一些項目管理功能。Laravel App :: make導致無限循環

無論何時創建/更新/刪除模型,我在Laravel中使用Model Observers來創建審計跟蹤。因此,例如,在創建項目時,觀察者將自動創建項目審計模型的新實例,以創建存儲已更改字段的新數據庫條目。這個觀察者也清除相關的緩存,確保用戶可以訪問最新的信息。

呼籲高速緩存儲存庫的問題導致此錯誤信息(不帶堆棧跟蹤):

Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_ERROR) 
Maximum function nesting level of '100' reached, aborting! 

我使用App ::使調用高速緩存儲存庫:

$this->projectAuditCache = App::make('cache\ProjectManagement\Interfaces\ProjectAuditCacheInterface'); 

審計高速緩存存儲庫然後只與另一個不依賴於其他的存儲庫構建。

堆棧跟蹤唯一可能的線索是這樣的:

Open: /home/vagrant/Sites/fixing/new_fixing/vendor/laravel/framework/src/Illuminate/Container/Container.php 
    * Determine if the given abstract has a leading slash. 
    * 
    * @param string $abstract 
    * @return bool 
    */ 
    protected function missingLeadingSlash($abstract) 
    { 
     return is_string($abstract) && strpos($abstract, '\\') !== 0; 
    } 

有沒有辦法得到這個工作?是使用App ::使錯誤的方式去做這件事?

謝謝你,埃德

回答

1

這將導致錯誤的XDebug PHP的調試擴展問題。 這個擴展想要回顯的數組是大的。

只需簡單地在php.ini中簡單調整xdebug的最大嵌套級別設置。 或與您的應用程序啓動時,應包含在命令

ini_set('xdebug.max_nesting_level', $limit) 

。對於Laravel 4.x應該是app/start/global.php

來源:StackOverflow