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之Smarty入门
Jan 04 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
php实现多张图片上传加水印技巧
Apr 18 PHP
joomla jce editor 解决上传中文名文件失败问题
Jun 09 PHP
根据ip调用新浪api获取城市名并转成拼音
Mar 07 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
PHP捕获Fatal error错误的方法
Jun 11 PHP
ucenter通信原理分析
Jan 09 PHP
php上传中文文件名乱码问题处理方案
Feb 03 PHP
php array_multisort 对数组进行排序详解及实例代码
Oct 27 PHP
PHP获取路径和目录的方法总结【必看篇】
Mar 04 PHP
PHP设计模式之观察者模式定义与用法示例
Aug 04 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/08/18 PHP
php 显示指定路径下的图片
2009/10/29 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
js实现蒙版效果
2020/01/11 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
python手机号前7位归属地爬虫代码实例
2020/03/31 Python
python 通过文件夹导入包的操作
2020/06/01 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
UNIX命令速查表
2012/03/10 面试题
应届医学毕业生求职信分享
2013/12/02 职场文书
植树节标语
2014/06/27 职场文书
节能环保演讲稿
2014/08/28 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
公司文体活动总结
2015/05/07 职场文书
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python