我正在尝试在Laravel 4中注册我的控制器。在routes.php
我有:
Route::get("/","HomeController@index");
Route::get("search","SearchController@index");
现在,家庭控制器路由很好,但搜索控制器路由给我一个错误:
ReflectionException: Class SearchController does not exist
但是,类存在。我甚至试图创建另一个样本控制器,但无济于事,因为同样的消息出现了。
答案 0 :(得分:20)
名称在L4中区分大小写。并且方法名称应该完全匹配(例如getIndex,而不是index())。
另外,因为它使用了composer包,所以你需要运行:
php composer dump-autoload
检测任何新的类/控制器
答案 1 :(得分:2)
我遇到了同样的问题,作曲家dump-autoload
没有解决它。
我意识到我的类文件没有在Composer生成的vendor / composer / autoload_classmap.php中声明。
我清除了缓存文件夹的内容。在Linux中,此文件夹是:
〜/ .composer /缓存
在Windows 7中:C:\ Users \\ AppData \ Local \ Composer \ files
如果存在bootstrap / compiled.php,也应将其删除或运行:php artisan clear-compiled
。
在此之后,我删除了composer.lock和vendor文件夹并运行:composer install。 这将我的类文件放入autoload_classmap.php但是仍然抛出了ReflectionException ......
作为最后一次尝试,我从已经在使用的项目中复制并重命名了另一个控制器,这解决了这个问题。