【问题标题】:Laravel Middleware Class 'App\Http\Middleware\CheckAuth' not found未找到 Laravel 中间件类“App\Http\Middleware\CheckAuth”
【发布时间】:2020-05-08 11:35:01
【问题描述】:

所以我尝试使用中间件在我的应用程序的几个页面上对用户进行身份验证,但我收到了这个错误:

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
];

当我尝试使用中间件时(例如 -&gt;middleware('authenticated');),我收到错误消息。

谢谢。

【问题讨论】:

  • 您要声明一个扩展自身的类?类 CheckAuth 扩展中间件

标签: laravel middleware


【解决方案1】:
<?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);
    }
}

【讨论】:

  • 总是解释你的答案。只需一段代码就可以解决问题,而不是教它。
【解决方案2】:

删除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 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 2015-06-24
    • 2021-09-25
    • 2015-05-21
    相关资源
    最近更新 更多