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作的文本留言本的例子(三)
Oct 09 PHP
动易数据转成dedecms的php程序
Apr 07 PHP
destoon安装出现Internal Server Error的解决方法
Jun 21 PHP
php中隐形字符65279(utf-8的BOM头)问题
Aug 16 PHP
memcache一致性hash的php实现方法
Mar 05 PHP
Symfony2实现在doctrine中内置数据的方法
Feb 05 PHP
PHP模拟post提交数据方法汇总
Feb 16 PHP
Yii框架表单模型和验证用法
May 20 PHP
php获取ip及网址的简单方法(必看)
Apr 01 PHP
PHP简单实现解析xml为数组的方法
May 02 PHP
PHP封装curl的调用接口及常用函数详解
May 31 PHP
深入学习微信网址链接解封的防封原理visit_type
Aug 15 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表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
Python中的数学运算操作符使用进阶
2016/06/20 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
测试工程师职业规划书
2014/02/06 职场文书
师范生求职自荐信
2014/06/14 职场文书
教师学期个人总结
2015/02/11 职场文书
离婚起诉状范本
2015/05/19 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL
python非标准时间的转换
2021/07/25 Python