6

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

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

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

ReflectionException: Class SearchController does not exist

但是,该类确实存在。我什至尝试创建另一个示例控制器,但无济于事,因为出现了相同的消息。

4

2 回答 2

20

名称在 L4 中区分大小写。并且方法名称应该完全匹配(例如 getIndex,而不是 index() )。

此外,因为它使用作曲家包,你将需要运行: php composer dump-autoload 检测任何新的类/控制器

于 2013-01-07T17:58:33.643 回答
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 仍然被抛出......

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

于 2014-03-21T14:43:04.903 回答