2013-01-07 56 views
6

我想在Laravel 4.註冊我的控制器在routes.php我:路由到控制器中Laravel失敗4

Route::get("/","[email protected]"); 
Route::get("search","[email protected]"); 

現在,家庭控制器的路線是很好,但搜索控制器路線給我錯誤:

ReflectionException: Class SearchController does not exist 

然而,類確實存在。我甚至試圖創建另一個示例控制器,但無濟於事,因爲相同的消息出現了。

回答

20

名稱在L4中區分大小寫。方法名稱應完全匹配(例如,getIndex,而不是index())。

而且,因爲它使用了作曲家包,你將需要運行: php composer dump-autoload 檢測到任何新的類/控制器

+3

謝謝!這是一個真正的作曲家問題 – Matanya

+0

非常感謝.... – Sushil

2

我有同樣的問題和作曲家dump-autoload沒有解決問題。

我意識到我的類文件沒有在由Composer生成的vendor/composer/autoload_classmap.php中聲明。

我清除了緩存文件夾的內容。在Linux中,這個文件夾是: 〜/ .composer/cache 在Windows 7中:C:\ Users \\ AppData \ Local \ Composer \ files 如果bootstrap/compiled.php存在,它也應該被刪除,或者運行:php artisan clear-compiled

之後,我刪除了composer.lock和vendor文件夾並運行:composer install。 這將我的類文件放入autoload_classmap.php中,但是ReflectionException仍在拋出......

作爲最後的嘗試,我複製並重命名了已經在使用的項目中的另一個控制器,並解決了問題。

+0

一個簡單的方法來使用作曲家來做同樣的事情是在routes.php中註釋控制器的引用,運行php artisan dump和然後取消註釋這些參考。 – Ulterior