您的位置:首页 > 编程语言 > PHP开发

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

2017-10-23 16:11 816 查看
按照官方提供的文档: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']);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐