laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析


Posted in PHP onFebruary 18, 2020

本文实例讲述了laravel框架路由分组,中间件,命名空间,子域名,路由前缀。分享给大家供大家参考,具体如下:

laravel的路由分组,就是把一些具有相同特征的路由进行分组,比如一些路由需要进行验证,一些路由有共同的前缀,一些路由有相同的控制器命名空间等。

这样把路由组合在一起,方便管理,维护性更好。

Route::group([], function () {
  Route::get('user/list', function () {});
  Route::get('user/info', function () {});
});

上面的代码把两个路由归为一组,但并没有应用任何相同特征,这样的意义并不大。

一、中间件

为一组路由设置相同的中间件,可设置多个中间件,执行顺序依数组中的顺序来运行。

Route::middleware(['auth'])->group(function () {
  //使用auth中间件
  Route::get('user/list', function () {});
  //使用auth中间件
  Route::get('user/info', function () {});
});

二、路由前缀

有些路由有共同的前缀,我们可以为这些路由设置一个共同的前缀。

Route::prefix('user')->group(function () {
  //处理/user/list
  Route::get('list', function () {});
  //处理/user/info
  Route::get('info', function () {});
});

三、路由名称前缀

为路由设置名称时,我们想为同组下的路由名称都加上相同的名称前缀。

Route::name('user.')->prefix('user')->group(function () {
  //处理/user/list,并命名为user.list
  Route::get('list', function () {})->name('list');
  //处理/user/info,并命名为user.info
  Route::get('info', function () {})->name('info');
});

四、子域名

针对有多商家的场景,某些家商有自已独立的子域名,这时候我们需要针对子域名来进行路由分组。

Route::domain('{shop}.tmall.com')->group(function () {
  //处理xxx.tmall.com/orders/xxx
  //$shop参数始终是分组路由的第一个参数
  Route::get('orders/{id}', function ($shop, $id) {
  });
  //处理xxx.tmall.com/products/xxx
  //$shop参数始终是分组路由的第一个参数
  Route::get('products/{id}', function ($shop, $id) {
  });
});

五、命名空间

当我们绑定路由到控制器方法时,如果没有显示指定控制器的命名空间,默认为 App\Http\Controllers。

如果分组路由需要绑定位于该命名空间下的子命名空间,如:App\Http\Controllers\Orders。则可为该分组路由设置一个命名空间。

Route::namespace('Orders')->prefix('orders')->group(function () {
  //处理/orders/delete
  //并绑定到App\Http\Controllers\Orders下的DeleteController控制器的index方法
  Route::post('delete', 'DeleteController@index');
  //处理/orders/add
  //并绑定到App\Http\Controllers\Orders下的AddController控制器的index方法
  Route::post('add', 'AddController@index');
});

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
第八节--访问方式
Nov 16 PHP
php文件操作实例代码
May 10 PHP
spl_autoload_register与autoload的区别详解
Jun 03 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
Jul 03 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
PHP入门教程之会话控制技巧(cookie与session)
Sep 11 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 #PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 #PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 #PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 #PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 #PHP
laravel框架使用极光推送消息操作示例
Feb 15 #PHP
laravel框架使用阿里云短信发送消息操作示例
Feb 15 #PHP
You might like
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
深入理解Javascript作用域与变量提升
2013/12/09 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
Python基于动态规划算法计算单词距离
2015/07/25 Python
python变量不能以数字打头详解
2016/07/06 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
Python中Unittest框架的具体使用
2019/08/27 Python
HTML5超文本标记语言的实现方法
2020/09/24 HTML / CSS
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
演讲稿怎么写才完美
2014/01/02 职场文书
社区平安建设方案
2014/05/25 职场文书
实验室的标语
2014/06/20 职场文书
党员目标管理责任书
2014/07/25 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
财务会计岗位职责
2015/02/03 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
家装电话营销开场白
2015/05/29 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
各国货币符号大全
2022/02/17 杂记
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫
V Rising 服务器搭建图文教程
2022/06/16 Servers
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers