问题描述
我有一个问题,显示 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 (将#修改为@)