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 mb_convert_encoding 获取字符串编码类型实现代码
Apr 26 PHP
一个php Mysql类 可以参考学习熟悉下
Jun 21 PHP
PHP的5个安全措施小结
Jul 17 PHP
php显示指定目录下子目录的方法
Mar 20 PHP
PHP排序算法类实例
Jun 17 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
Jul 23 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
PHP提取字符串中的手机号正则表达式怎么写
Jul 17 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP获取对象属性的三种方法实例分析
Jan 03 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 传值赋值与引用赋值的区别
2010/12/29 PHP
ThinkPHP表单令牌错误的相关解决方法分析
2016/05/20 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
提示$ is not defined错误分析及解决
2013/04/09 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
vue.js 实现输入框动态添加功能
2018/06/25 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
实习单位评语
2014/04/26 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
初中生活随笔
2015/08/15 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python