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 相关文章推荐
用缓存实现静态页面的测试
Dec 06 PHP
在普通HTTP上安全地传输密码
Jul 21 PHP
用php+javascript实现二级级联菜单的制作
May 06 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
Nov 18 PHP
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
PHP中PDO基础教程 入门级
Sep 04 PHP
PHP设计模式之解释器模式的深入解析
Jun 13 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
查找php配置文件php.ini所在路径的二种方法
May 26 PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 PHP
php从数据库查询结果生成树形列表的方法
Apr 17 PHP
PHPMailer发送邮件
Dec 28 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
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
2011/05/02 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
js 窗口抖动示例
2013/09/04 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
tornado框架blog模块分析与使用
2013/11/21 Python
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
如何使用Python发送HTML格式的邮件
2020/02/11 Python
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
当当网软件测试笔试题
2015/11/24 面试题
安全大检查实施方案
2014/02/22 职场文书
教师党员承诺书
2014/03/25 职场文书
班级文化建设标语
2014/06/23 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
整改报告怎么写
2014/11/06 职场文书
给老师的一封感谢信
2015/01/20 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS