每次我运行php artisan routes
时,我都会得到ReflectionException
错误,并且UsersController
类不存在。我很确定它确实如此。
我尝试了php composer dump-autoload
和php artisan clear-compiled
,它们都给出了相同的错误。
这是我的错误登录/app/storage/logs/
[2014-03-30 01:41:24] production.ERROR: exception 'ReflectionException' with message 'Class UsersController does not exist' in C:wampwwwre3vendorlaravelframeworksrcIlluminateRoutingControllerInspector.php:28
Stack trace:
#0 C:wampwwwre3vendorlaravelframeworksrcIlluminateRoutingControllerInspector.php(28): ReflectionClass->__construct('UsersController')
#1 C:wampwwwre3vendorlaravelframeworksrcIlluminateRoutingRouter.php(269): IlluminateRoutingControllerInspector->getRoutable('UsersController', 'users')
#2 C:wampwwwre3vendorlaravelframeworksrcIlluminateSupportFacadesFacade.php(211): IlluminateRoutingRouter->controller('users', 'UsersController')
#3 C:wampwwwre3approutes.php(14): IlluminateSupportFacadesFacade::__callStatic('controller', Array)
#4 C:wampwwwre3approutes.php(14): IlluminateSupportFacadesRoute::controller('users', 'UsersController')
#5 C:wampwwwre3vendorlaravelframeworksrcIlluminateFoundationstart.php(269): require('C:wampwwwre3...')
#6 [internal function]: {closure}(Object(IlluminateFoundationApplication))
#7 C:wampwwwre3vendorlaravelframeworksrcIlluminateFoundationApplication.php(792): call_user_func(Object(Closure), Object(IlluminateFoundationApplication))
#8 C:wampwwwre3vendorlaravelframeworksrcIlluminateFoundationApplication.php(569): IlluminateFoundationApplication->fireAppCallbacks(Array)
#9 C:wampwwwre3vendorlaravelframeworksrcIlluminateFoundationApplication.php(552): IlluminateFoundationApplication->bootApplication()
#10 C:wampwwwre3vendorlaravelframeworksrcIlluminateConsoleApplication.php(44): IlluminateFoundationApplication->boot()
#11 C:wampwwwre3vendorlaravelframeworksrcIlluminateConsoleApplication.php(33): IlluminateConsoleApplication::make(Object(IlluminateFoundationApplication))
#12 C:wampwwwre3artisan(46): IlluminateConsoleApplication::start(Object(IlluminateFoundationApplication))
#13 {main} [] []
不知何故,Laravel无法找到您的用户控制器,运行
composer dumpautoload
然后检查文件vendor/composer/autoload_classmap.php
,您的用户控制器必须在那里,否则作曲家将无法自动加载它,Laravel将无法访问它。
如果在 int 中找不到控制器,则必须检查:
1) 您的 composer.json 文件,您的控制器所在的文件夹必须位于:
"autoload": {
"classmap": [
"app/controllers",
....
],
2) 检查您的类名称是否正确。
3) 如果您使用的是命名空间:
类 用户控制器扩展控制器 { ... }
您必须在对它的引用中使用命名空间,在这种情况下,使用 PSR-4(甚至 PSR-0)自动加载您的类可能会更好。
4)将您在autoload_classmap.php的课程与不存在的课程进行比较。命名或目录放置必须有所不同。
5)检查您的课程是否都以
<?php
而不仅仅是
<?
这对作曲家和PHP来说可能不会有太大的区别,但对Laravel来说却有
在控制器文件中检查命名空间。
例如
namespace AppHttpControllershome;
在上面的名称空间中,控制器文件应存在于主文件夹中。如果它存在于主文件夹中,并且如果我没有在上面包含主页,则会给出反射错误。
只需将名称空间与放置控制器文件的文件夹结构相对应。
就我而言,碰巧我有两个名称相同但位于不同位置的控制器:
app\Http\Controllers\Auth\PasswordController.php
和
app\Http\Controllers\Admin\Auth\PasswordController.php
最后一个
有一个错误的命名空间(命名空间App\Http\Controllers\app\Http\Controllers\Admin\Auth\PasswordController.php
Auth;而不是**namespace App\Http\Controllers\Admin\Auth;*),因此我经常收到ReflectionException异常