laravel框架学习(四)执行创建中间件后,提示无法找到该中间件的解决方法

按照官方提供的文档:http://laravelacademy.org/post/7812.html


1.创建中间件:先声明中间件,

php artisan make:middleware AdminMiddleware

会自动在app/Http/Middleware 文件夹下生成 AdminMiddleware的中间件文件:如下

namespace App\Http\Middleware;

use Closure;
use Auth;
class AdminMiddleware
{
    /**
     * 声明中间件,验证逻辑可以根据自己需求写
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        //中间件处理是否需要登录权限
        if( !Auth::guard('admin')->check()){
            return redirect('/admin/login');
        }
        return $next($request);
    }
}

2.然后绑定到app/Http/Kernel.php 文件中添加,如果需要使用路由中间件,就加载到

protected $routeMiddleware = [
    //添加中间件
     'admin.auth'=> AdminMiddleware::class,

    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];

3.再输入该路由调用时,必须把AdminMiddleware的命名空间写上,不然会报错,造成无法使用


解决方法:就是在app/Http/Kernel.php该文件中加上

namespace App\Http;

use App\Http\Middleware\AdminMiddleware;  //引入新建的中间件的方法

在控制器中调用中间件


    public function __construct(){
        //执行中间件,验证是否登录 ,排除loginForm,login两个不需要验证的方法
        $this->middleware('admin.auth')->except(['loginForm','login']);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱酥网络

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值