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

Php 到控制器的路由在Laravel 4中失败,php,laravel,Php,Laravel,我正在尝试在Laravel 4中注册我的控制器。在routes.php中,我有: Route::get("/","HomeController@index"); Route::get("search","SearchController@index"); 现在,主控制器路由正常,但搜索控制器路由给我一个错误: ReflectionException: Class SearchController does not exist 但是,该类确实存在。我甚至尝试创建另一个示例控制器,但没有成功,因

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

Route::get("/","HomeController@index");
Route::get("search","SearchController@index");
现在,主控制器路由正常,但搜索控制器路由给我一个错误:

ReflectionException: Class SearchController does not exist

但是,该类确实存在。我甚至尝试创建另一个示例控制器,但没有成功,因为出现了相同的消息。

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

此外,由于它使用composer软件包,您需要运行:

php编写器转储自动加载

为了检测任何新的类/控制器,我遇到了相同的问题,composer
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安装。 这将我的类文件放入autoload_classmap.php中,但是仍然会抛出ReflectionException


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

谢谢!这确实是一个composer问题使用composer执行相同操作的简单方法是在routes.php中注释掉对控制器的引用,运行
php artisan dump
,然后取消注释这些引用。