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一句话cmdshell新型 (非一句话木马)
Apr 18 PHP
Sorting Array Values in PHP(数组排序)
Sep 15 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
Jan 16 PHP
PHP生成随机用户名和密码的实现代码
Feb 27 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
php读取mysql中文数据出现乱码的解决方法
Aug 16 PHP
php处理restful请求的路由类分享
Feb 27 PHP
Opcache导致php-fpm崩溃nginx返回502
Mar 02 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
php解决crontab定时任务不能写入文件问题的方法分析
Sep 16 PHP
php实现多站点共用session实现单点登录的方法详解
Sep 18 PHP
Laravel框架处理用户的请求操作详解
Dec 20 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
php 函数中静态变量使用的问题实例分析
Mar 05 #PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 #PHP
You might like
PHP开发文件系统实例讲解
2006/10/09 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
jQuery实现tab标签自动切换的方法
2015/02/28 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
Validform表单验证总结篇
2016/10/31 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
12步教你理解Python装饰器
2016/02/25 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
大学生的应聘自我评价
2013/12/13 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
活动总结报告怎么写
2014/07/03 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB
使用Python获取字典键对应值的方法
2022/04/26 Python
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技