本文实例讲述了laravel框架中间件简单使用方法。分享给大家供大家参考,具体如下:
laravel内置了一个中间件来验证用户是否经过认证,如果用户没有经过认证,中间件会将用户重定向到登录页面,否则如果用户经过认证,中间件就会允许请求继续往前进入下一步操作。
当然,除了认证之外,中间件还可以被用来处理更多其它任务。比如:CORS 中间件可以用于为离开站点的响应添加合适的头(跨域);日志中间件可以记录所有进入站点的请求。
Laravel框架自带了一些中间件,包括认证、CSRF 保护中间件等等。所有的中间件都位于 app/Http/Middleware目录。
中间是请求前还是请求后执行取决于中间件本身,以下中间件会在请求处理前执行一些任务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?php namespace App\Http\Middleware; use Closure; class TestMiddle { public function handle( $request , Closure $next ) { // 执行动作 if (! $request ->session()->has( 'huser' )){ return redirect( "login/index" ); } return $next ( $request ); } } |
而下面这个中间件则会在请求处理后执行其任务:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php namespace App\Http\Middleware; use Closure; class TestMiddle { public function handle( $request , Closure $next ) { $response = $next ( $request ); // 执行动作 if (! $request ->session()->has( 'huser' )){ return redirect( "login/index" ); } return $response ; } } |
中间件可以自己在编辑器里面新建对应类生成,也可用命令生成
1
|
php artisan make:middleware TestMiddle |
此时,laravel的app\Http\Middleware\目录就会多一个TestMiddle.php的中间件文件
此时中间件还不能直接使用,必须把它注册到我们的laravel中,如下
只需在 app/Http/Kernel.php 类(3个属性,对应里面加入,我有时用路由的)
1
|
'TestMiddle' => \App\Http\Middleware\TestMiddle:: class , |
分配中间件到路由,下面介绍三种方式
1
2
3
4
5
6
7
|
Route::get( '/' , function (){ return redirect( 'home/index' ); })->middleware( 'TestMiddle' ); Route::group([ 'middleware' => [ 'TestMiddle' ]], function () { Route::controller( "db" , "DataBaseController" ); }); Route::controller( "home" , "HomeController" ,[ 'middleware' => 'TestMiddle' ]); |
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/fps2tao/p/7804220.html