【问题标题】:php artisan route:list ReflectionException class does not exist but its there?php artisan route:list ReflectionException 类不存在但它存在吗?
【发布时间】:2019-08-19 20:32:10
【问题描述】:

当我使用标题中所说的命令时,我遇到了这个问题,它没有找到我在我的 auth 文件夹中的 LoginController。 它似乎想使用错误的路径加载控制器。

这很奇怪,因为当我注意到尝试使用 route:list 命令的错误时,我从未从该控制器中触摸或移动过任何东西,因为对于我的应用程序,它正常工作,除非我注销时它不会重定向到我的登录名再查看它没有重定向到公共因此显示 404。

我不知道我做了什么弄坏了那些东西。

我尝试将控制器的命名空间更改为它在错误中显示的名称,但这很奇怪,因为当我更改它时,新错误会显示控制器的正确路径,但自从我更改后它就再也找不到它了。 我还尝试了以下命令:config:cache、composer dump-autoload、composer update。

这是我的控制器:

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

}

我的网络路线:

<?php

Auth::routes();


Route::get('/home', 'HomeController@index')->name('home');



Route::namespace('Admin')->prefix('admin')->middleware(['auth',  'auth.admin'])->name('admin.')->group(function(){
    Route::resource('/ImagenAudioVideo',  'PlantillaController', ['except' => ['show', 'create', 'store'] ]);
    Route::resource('/Imagen',  'PlantillaImagenesController', ['except' => ['show', 'create', 'store'] ]);
    Route::resource('/Audio',  'PlantillaAudiosController', ['except' => ['show', 'create', 'store'] ]);
    Route::resource('/Video',  'PlantillaVideosController', ['except' => ['show', 'create', 'store'] ]);
    Route::resource('/ImagenAudio',  'PlantillaImagenesAudioController', ['except' => ['show', 'create', 'store'] ]);
    Route::resource('/EditarUsuario',  'EditarUsuariosController', ['except' => ['show', 'create', 'store'] ]);

    Auth::routes(['register' => false]);

    Route::get('/', function () {
    return view('home');
});

});

例外:

  ReflectionException  : Class App\Http\Controllers\Admin\Auth\LoginController does not exist

  at /Applications/MAMP/htdocs/ConfiguradorIEM/vendor/laravel/framework/src/Illuminate/Container/Container.php:790

注意它如何显示不同的路径,但是当我将命名空间更改为异常中显示的路径时,它会在之前的路径中引发新错误。

【问题讨论】:

    标签: laravel-5


    【解决方案1】:

    您有两个Auth::routes(); 声明,第二个具有命名空间Admin

    这就是您收到此错误的原因:您必须删除 Admin 命名空间 Route 内的行 Auth::routes(['register' =&gt; false]);,因为您要将 Admin 命名空间添加到所有 Auth 控制器。

    请记住,Auth::routes(); 用于大多数命名路由,第二个路由声明会覆盖第一个。

    【讨论】:

    • 不客气,如果有帮助,请考虑对答案进行投票。
    • 我尝试了投票,但我需要更多的声誉,但我接受了答案
    【解决方案2】:

    如果有人仍在寻找此类错误的解决方案。

    在我的例子中,出现错误只是因为我忘记为我的控制器指定命名空间,该名称位于 Billing 目录中。

    一旦我在控制器顶部添加了这一行:

    namespace App\Http\Controllers\Billing;
    

    问题已解决。

    【讨论】:

      猜你喜欢
      • 2018-02-16
      • 2020-01-11
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 2018-07-01
      • 2014-12-11
      • 2017-11-07
      • 1970-01-01
      相关资源
      最近更新 更多