如何修复 Laravel 5.7 中不存在 ReflectionException Middleware AdminAuthenticated

问题描述

我有一个问题,显示 ReflectionException (-1) Class App\Http\Middleware\AdminAuthenticated 不存在。

我的中间件:

namespace App\Http\Middleware;

use Closure;
use Auth;

class AdminAuthenticated​
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request,Closure $next)
    {
        if( Auth::check() )
        {
            // if user is not admin take him to his dashboard
            if ( Auth::user()->isUser() ) {
                 return redirect(route('Userhome'));
            }

            // allow admin to proceed with request
            else if ( Auth::user()->isAdmin() ) {
                 return $next($request);
            }
        }

        abort(404);  // for other user throw 404 error
    }
}

控制器:

namespace App\Http\Controllers\Auth;

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

class LoginController extends Controller
{

    use AuthenticatesUsers;

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

    protected function authenticated(Request $request,$user)
    {
        // to admin dashboard
        if($user->isAdmin()) {
            return redirect(route('home'));
        }

        // to user dashboard
        else if($user->isUser()) {
            return redirect(route('Userhome'));
        }

        abort(404);
    }
}

内核:

protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,'can' => \Illuminate\Auth\Middleware\Authorize::class,'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsverified::class,'admin' => \App\Http\Middleware\AdminAuthenticated::class,'user'  => \App\Http\Middleware\UserAuthenticated::class,];

路线:

Route::group(['middleware' => ['auth','user'],'prefix' => 'user'],function () {
    Route::get('/','Frontend\HomeController@index')->name('Userhome');
});

Route::group(['middleware' => ['auth','admin'],'prefix' => 'admin'],function () {
    Route::get('/home','ReportController@index')->name('home');
});

我试过了

composer dump-autoload
 PHP artisan clear-compiled
 PHP artisan optimize

并且还检查了命名空间是否正确,使用 PHP artisan 命令创建了控制器和中间件,因此没有命名空间问题。

composer.json 文件

 "autoload": {
        "classmap": [
            "database/seeds","database/factories"
        ],"psr-4": {
            "App\\": "app/"
        }
    },

坚持这个,我试图根据角色对用户进行身份验证。希望这些信息对我有帮助。

期待任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)