本文实例讲述了laravel框架中间件简单使用方法。分享给大家供大家参考,具体如下:
laravel内置了一个中间件来验证用户是否经过认证,如果用户没有经过认证,中间件会将用户重定向到登录页面,否则如果用户经过认证,中间件就会允许请求继续往前进入下一步操作。
当然,除了认证之外,中间件还可以被用来处理更多其它任务。比如:CORS 中间件可以用于为离开站点的响应添加合适的头(跨域);日志中间件可以记录所有进入站点的请求。
Laravel框架自带了一些中间件,包括认证、CSRF 保护中间件等等。所有的中间件都位于 app/Http/Middleware目录。
中间是请求前还是请求后执行取决于中间件本身,以下中间件会在请求处理前执行一些任务
?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);
}
}
而下面这个中间件则会在请求处理后执行其任务:
?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;
}
}
中间件可以自己在编辑器里面新建对应类生成,也可用命令生成
php artisan make:middleware TestMiddle
此时,laravel的app\Http\Middleware\目录就会多一个TestMiddle.php的中间件文件
此时中间件还不能直接使用,必须把它注册到我们的laravel中,如下
只需在 app/Http/Kernel.php 类(3个属性,对应里面加入,我有时用路由的)
'TestMiddle' => \App\Http\Middleware\TestMiddle::class,
分配中间件到路由,下面介绍三种方式
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相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
您可能感兴趣的文章:- Laravel中间件实现原理详解
- Laravel框架实现利用中间件进行操作日志记录功能
- Laravel的throttle中间件失效问题解决方法
- Laravel获取当前请求的控制器和方法以及中间件的例子
- laravel框架中间件 except 和 only 的用法示例
- Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
- 浅谈Laravel中的三种中间件的作用
- Laravel5.1框架注册中间件的三种场景详解
- laravel利用中间件防止未登录用户直接访问后台的方法
- laravel利用中间件做防非法登录和权限控制示例
- 基于Laravel 多个中间件的执行顺序详解
- Laravel5.1 框架Middleware中间件基本用法实例分析