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 相关文章推荐
多数据表共用一个页的新闻发布
Oct 09 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
Apr 07 PHP
PHP STRING 陷阱原理说明
Jul 24 PHP
php设计模式 Composite (组合模式)
Jun 26 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
ajax php传递和接收变量实现思路及代码
Dec 19 PHP
php 模拟POST提交的2种方法详解
Jun 17 PHP
php通过asort()给关联数组按照值排序的方法
Mar 18 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
php文件上传的两种实现方法
Apr 04 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
Nov 05 PHP
如何在PHP中生成随机数
Jun 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
php 函数中静态变量使用的问题实例分析
Mar 05 #PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 #PHP
You might like
php使用glob函数快速查询指定目录文件的方法
2014/11/15 PHP
php计算一个文件大小的方法
2015/03/30 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
非阻塞动态加载javascript广告实现代码
2010/11/17 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
原生JS实现留言板
2020/03/26 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
python开发之list操作实例分析
2016/02/22 Python
基于Django filter中用contains和icontains的区别(详解)
2017/12/12 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
python安装gdal的两种方法
2019/10/29 Python
python psutil监控进程实例
2019/12/17 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
python 制作网站小说下载器
2021/02/20 Python
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
先进事迹报告会主持词
2014/04/02 职场文书
补充协议书范本
2014/04/23 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
HTML中的表单元素介绍
2022/02/28 HTML / CSS
python turtle绘图
2022/05/04 Python
create-react-app开发常用配置教程
2022/06/25 Javascript