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 相关文章推荐
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
php随机输出名人名言的代码
Oct 07 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
Apr 18 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
php实现用于验证所有类型的信用卡类
Mar 24 PHP
WordPress自定义时间显示格式
Mar 27 PHP
PHP7.1新功能之Nullable Type用法分析
Sep 26 PHP
PHP 500报错的快速解决方法
Dec 14 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 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中ob_start()函数的用法
2013/06/24 PHP
php加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
php可变长参数处理函数详解
2017/02/22 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
vue.js指令和组件详细介绍及实例
2017/04/06 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
koa-router源码学习小结
2018/09/07 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
node使用request请求的方法
2019/12/20 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
jQuery实现简单日历效果
2020/07/05 jQuery
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
Python中使用中文的方法
2011/02/19 Python
python实现获取序列中最小的几个元素
2014/09/25 Python
Python字符串格式化输出代码实例
2019/11/22 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
电子装配专业毕业生求职信
2014/04/23 职场文书
个人总结怎么写
2015/02/26 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript