php artisan 路由上的反射异常错误



每次我运行php artisan routes时,我都会得到ReflectionException错误,并且UsersController类不存在。我很确定它确实如此。

我尝试了php composer dump-autoloadphp 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\Admin\Auth\PasswordController.php

有一个错误的命名空间(命名空间App\Http\Controllers\

Auth;而不是**namespace App\Http\Controllers\Admin\Auth;*),因此我经常收到ReflectionException异常

相关内容

  • 没有找到相关文章

最新更新