因此,我尝试使用中间件在应用程序的几个页面上对用户进行身份验证,但我得到了以下错误:
Class 'App\Http\Middleware\CheckAuth' not found下面是CheckAuth.php:
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
use App\Http\Middleware\CheckAuth as Middleware;
class CheckAuth extends Middleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Auth::user()->auth > 0) {
return redirect()->route('dashboard');
}
return $next($request);
}
}下面是Kernel.php:
protected $routeMiddleware = [
...
'authenticated' => \App\Http\Middleware\CheckAuth::class
];当我尝试使用中间件(像这样的->middleware('authenticated');)时,我得到了错误。
谢谢。
发布于 2020-05-08 19:46:29
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
class CheckAuth
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Auth::user()->auth > 0) {
return redirect()->route('dashboard');
}
return $next($request);
}
}发布于 2020-05-08 19:58:31
删除你在同一个类文件中的use App\Http\Middleware\CheckAuth as Middleware;。您不需要再次使用它。
从中间件的顶部删除此行。
use App\Http\Middleware\CheckAuth as Middleware;而且您也不需要扩展该中间件
现在,您的代码如下所示。
namespace App\Http\Middleware;
use Closure;
use Auth;
class CheckAuth
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Auth::user()->auth > 0) {
return redirect()->route('dashboard');
}
return $next($request);
}
}使用命令创建中间件
php artisan make:middleware CheckAuth https://stackoverflow.com/questions/61678252
复制相似问题