在Laravel 4中,路由到控制器失败

时间:2013-01-07 17:48:40

标签: php laravel

我正在尝试在Laravel 4中注册我的控制器。在routes.php我有:

Route::get("/","HomeController@index");
Route::get("search","SearchController@index");

现在,家庭控制器路由很好,但搜索控制器路由给我一个错误:

ReflectionException: Class SearchController does not exist

但是,存在。我甚至试图创建另一个样本控制器,但无济于事,因为同样的消息出现了。

2 个答案:

答案 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 ......

作为最后一次尝试,我从已经在使用的项目中复制并重命名了另一个控制器,这解决了这个问题。