laravel笔记-中间件
来源:互联网 发布:华中大数据交易所 编辑:程序博客网 时间:2024/05/29 18:22
laravel笔记-中间件
写在前面
时间可贵,善用目录↑
学习Laravel的笔记,仅仅是作为laravel文档笔记,目的是强化对文档的理解,质量不高。
什么是中间件(middleware)
HTTP 中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制。
个人理解中间件相当于控制器的守门人。(控制进出的数据)
用户认证、日志、维护模式、开启Session、从Session中获取错误信息、CSRF验证
php artisan make:middleware CheckAge
中间件用法
如何定义?
中间件CheckAge控制只有age大于200的可以进入控制器
//中间件的命名空间namespace App\Http\Middleware;//匿名函数的类use Closure;class CheckAge{ /** * 返回请求过滤器 * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if ($request->input('age') <= 200) { //重定向 return redirect('home'); } //进入控制器 return $next($request); }}
如何注册?
全局注册:
在app/Http/Kernel.php 的数组属性 $middleware 中添加~
分配到路由:
首先应该在 app/Http/Kernel.php 文件中分配给该中间件一个简写的 key ~
protected $routeMiddleware = [ ...... 'checkAge' => App\Http\Middleware\CheckAge::class,];
然后:
Route::get('admin/profile', function () { //})->middleware('auth', 'checkAge');//可以分配多个中间件,checkAge为我在Kernel.php中注册的CheckAge的key~//或者这样:use App\Http\Middleware\CheckAge;Route::get('admin/profile', function () { //})->middleware(CheckAge::class);
中间件组:
就是在Kernel.php中设置一个组将多个中间件包含在一起方便分配~
详见Kernel.php中的$middlewareGroups。(分配到路由的方法同中间件)
参数
CheckRole.php
namespace App\Http\Middleware;use Closure;class CheckRole{ /** * 运行请求过滤器 * * @param \Illuminate\Http\Request $request * @param \Closure $next * @param string $role * @return mixed * translator http://laravelacademy.org */ public function handle($request, Closure $next, $role) { if (! $request->user()->hasRole($role)) { // Redirect... } return $next($request); }}
web.php
Route::put('post/{id}', function ($id) { //})->middleware('role:editor');
什么时候执行?
参照上面的例子:
//如果返回$next($request)表示请求处理之前return $next($request);//如果操作$next($request)表示请求处理之后$next($request);
可终止的中间件
响应已经发送给浏览器后可终止中间件执行一些任务
不是很清楚是什么意思~
我理解的顺序是:
请求->路由(分配请求)->中间件handle->controller(响应请求)->中间件handle:
阅读全文
0 0
- laravel笔记-中间件
- (学习笔记) Laravel 中间件
- laravel路由、中间件、控制器等简单笔记
- Laravel 5.1.4 + Bootstrap 3.3.5 笔记三:Laravel 中间件
- laravel 中间件
- Laravel中间件
- laravel中间件
- laravel中间件
- laravel中间件
- Laravel中间件
- Laravel中间件
- Laravel中间件
- laravel系列5-- 中间件
- laravel - 中间件使用
- 205 laravel 中间件实现
- laravel中间件源码分析
- Laravel 中间件建立使用
- Laravel中间件实现原理
- JavaScript Array 对象与排序
- 141 linked list cycle
- recycle view item项添加监听
- 背包问题
- 按键去抖分析
- laravel笔记-中间件
- 行者无疆
- 反射
- 通过Cmake创建动态库xxx.so
- My97DatePicker 日历控件使用,两个日历控件联动.
- 用户画像-聚类分析
- Java爬虫——phantomjs抓取ajax动态加载网页
- 系统函数tExcTask的实现及使用
- h5实现指针时钟