Laravel中间键的创建及使用

来源:互联网 发布:手机号批量加微信软件 编辑:程序博客网 时间:2024/05/17 07:25

1.Laravel中间键说白了就是在路由层面对访问进行控制。

2.先说一个没有中间键概念的PHP框架,如ThinkPHP(简称TP),在TP框架中进行开发时,有些页面必须是登录用户才能访问,通常的做法是创建一个父类控制器,该控制器里构造方法判断用户是否登录,其他有登录限制的控制器(方法)都继承该类

3.那么,Laravel中间键就是在路由层面完成了上述功能

4.具体做法

(1)创建中间键 php artisan make:middleware AdminLogin

(2)创建成功后在/app/Http/Middlewar下会生成AdminLogin.php文件,在handle方法里面加入如下代码(这里假设登录用户保存的是user_id)

if(!Session::get('user_id')){    return redirect('/admin/login');}return $next($request);//该行不能删除 另外注意引入Session文件  use Illuminate\Support\Facades\Session;
(3)在/app/Http/kernel.php里面注册中间件 加入'admin.login' => \Illuminate\Auth\Middleware\AdminLogin::class,
protected $routeMiddleware = [
'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,
'admin.login' => \Illuminate\Auth\Middleware\AdminLogin::class,
];
5.使用(路由文件中
use App\Http\Middleware\AdminLogin;//注意引用该类文件
Route::match(['get','post'],'/modify_password','IndexController@modify_password')->middleware(AdminLogin::class);//修改密码



1 0
原创粉丝点击