laravel框架中间件简单使用方法示例
发布:smiling 来源: PHP粉丝网 添加日期:2022-02-07 10:57:09 浏览: 评论:0
本文实例讲述了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']);
Tags: laravel中间件
相关文章
- ·Laravel框架基于中间件实现禁止未登录用户访问页面功能示例(2021-11-04)
- ·Laravel 6 将新增为指定队列任务设置中间件的功能(2021-12-09)
- ·laravel利用中间件防止未登录用户直接访问后台的方法(2021-12-25)
- ·Laravel获取当前请求的控制器和方法以及中间件的例子(2022-01-01)
- ·浅谈Laravel中的三种中间件的作用(2022-01-02)
- ·laravel在中间件内生成参数并且传递到控制器中的2种姿势(2022-01-04)
- ·基于Laravel 多个中间件的执行顺序详解(2022-01-14)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)