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