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 相关文章推荐
抓取YAHOO股票报价的类
May 15 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
mysql,mysqli,PDO的各自不同介绍
Sep 19 PHP
PHP程序级守护进程的实现与优化的使用概述
May 02 PHP
php生成二维码的几种方式整理及使用实例
Jun 03 PHP
php批量添加数据与批量更新数据的实现方法
Dec 16 PHP
使用纯php代码实现页面伪静态的方法
Jul 25 PHP
PHP中each与list用法分析
Jan 08 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
Feb 22 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 PHP
PHP explode()函数用法讲解
Feb 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
laravel框架使用极光推送消息操作示例
Feb 15 #PHP
laravel框架使用阿里云短信发送消息操作示例
Feb 15 #PHP
You might like
php生成xml简单实例代码
2009/12/16 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
2017/04/25 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
vue组件间的参数传递实例详解
2019/04/26 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
python 获取本机ip地址的两个方法
2013/02/25 Python
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
Python实现的归并排序算法示例
2017/11/21 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
工程总经理工作职责
2013/12/09 职场文书
运动会闭幕式解说词
2014/02/21 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
2014年防汛工作总结
2014/12/08 职场文书
物业工程部岗位职责
2015/02/11 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js