Laravel ——路由(中间件与路由组)
来源:互联网 发布:淘宝子账户如何认证 编辑:程序博客网 时间:2024/05/26 07:29
我们知道,路由是一个过程,分析来自客户端的请求按照路由规则分发至相应的处理逻辑。但有种情况,打个比方:后台。后台不是所有人都能访问的,我们在正式的处理逻辑前,需要做一个验证,比如验证是否具有权限或者请求的数据是否合法。
这时候,路由过程的一部分——中间件就上场了。
app/Http/Kernel.php中的 $middleware 数组是全局中间件,也就是说,任何一条路由都会被应用这些中间件,比如里面的CSRF验证中间件。
有时候我们不需要全局中间件,这时候可以将某一个中间件注册至app/Http/Kernel.php文件中的$routeMiddleware数组,数组的键名是中间件的别名,键值是具体的中间件类,如
'auth' => 'App\Http\Middleware\AuthMiddleware'。
具体如何在某一路由上使用特定的中间件我们下文继续。
我们在app/Http/Kernel.php
文件中的$routeMiddleware数组注册了一个独立中间件,这一中间件可被单独用绑定在一个路由和路由组上。在路由定义的时候可以像这样:
Route::get('admin/profile', ['middleware' => 'auth', function(){ //}]);当我们访问
http://yourdomain/admin/profile
的时候,首先会经过全局中间件,然后就是我们在app/Http/Kernel.php
的$routeMiddleware数组中定义的名称为auth
的中间件。路由组群
路由组群往往适用于给某一类路由分组,给这个路由组分配的中间件、过滤器等,都会被运用到该组内的所有路由。
说白了,路由组就是简化一部分路由定义过程的。比如,后台的我都想通过地址http://yourdomain/admin/***
访问,假如我有用户(user)
、文章(article)
两个模块,他们的访问都要经过一个验证权限的中间件,我需要这样定义路由:
Route::get('admin/user', ['middleware' => 'authority', function() { // blablabla...}]);Route::get('admin/article', ['middleware' => 'authority', function() { // blablabla...}]);
现在只有两条路由,我多写几个admin,middleware没啥的,但系统庞大以后,每个都要单独写对应的中间件,容易出错,不易管理。这时候,就应该使用路由组:
Route::group(['prefix' => 'admin', 'middleware' => 'authority'], function() { Route::get('user', function() { // blablabla... }); Route::get('article', function() { // blablabla... });});
0 0
- Laravel ——路由(中间件与路由组)
- laravel 学习笔记——路由(中间件与路由组)
- Laravel 学习笔记——路由(中间件与路由组)
- laravel 学习笔记——路由(中间件与路由组)
- laravel 学习笔记——路由(路由与控制器)
- laravel 学习笔记——路由(路由与控制器)
- Laravel——路由(路由与控制器)
- Laravel 学习笔记——路由(路由与控制器)
- laravel 学习笔记——路由(路由与控制器、资源路由)
- laravel 路由组 中添加中间件
- Connect中间件——路由中间件
- laravel路由和路由组
- laravel路由、中间件、控制器等简单笔记
- Laravel学习日记3:路由中间件
- laravel(三)-laravel路由
- laravel路由组划分
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 路由(二)之分库分表路由
- laravel学习笔记(1)— Laravel的安装及laravel中的路由介绍
- Linux系统基本操作相关命令
- windows 10 安装 hexo 续
- java applet 一个简单的例子(applet+html)
- LeetCode-238.Product of Array Except Self
- Java Servlet完全教程
- Laravel ——路由(中间件与路由组)
- 一个很酷的加载loading效果
- 平时犯的错
- oracle数据库创建用户、 创建角色和权限管理代码示例
- GC(浅析)
- Android Studio png图片 libpng error not a png file问题
- java界面,BorderLayout,GridLayout,FlowLayout
- jeecms,从word文档考入编辑器发布后,字体跟word不一样
- MFC关于ADO对象技术连接数据库总结