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 相关文章推荐
php 表单验证实现代码
Mar 10 PHP
rrmdir php中递归删除目录及目录下的文件
May 15 PHP
destoon常用的安全设置概述
Jun 21 PHP
PHP登录环节防止sql注入的方法浅析
Jun 30 PHP
php使用unset()删除数组中某个单元(键)的方法
Feb 17 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
功能强大的php文件上传类
Aug 29 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 PHP
php 浮点数比较方法详解
May 05 PHP
PHP+jQuery实现双击修改table表格功能示例
Feb 21 PHP
详解Laravel服务容器的优势
May 29 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
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
操作Oracle的php类
2006/10/09 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
php mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
php中get_headers函数的作用及用法的详细介绍
2013/04/27 PHP
php curl选项列表(超详细)
2013/07/01 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
JavaScript 对象模型 执行模型
2009/12/06 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
vue-resource 拦截器(interceptor)的使用详解
2017/07/04 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
财务管理职业生涯规划范文
2013/12/27 职场文书
高中美术教学反思
2014/01/19 职场文书
go web 预防跨站脚本的实现方式
2021/06/11 Golang
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python