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中的实现trim函数代码
Mar 19 PHP
PHP MSSQL 存储过程的方法
Dec 24 PHP
PHP 多进程 解决难题
Jun 22 PHP
php下使用curl模拟用户登陆的代码
Sep 10 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
Jun 28 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
PHP5.5和之前的版本empty函数的不同之处
Jun 13 PHP
php输入数据统一类实例
Feb 23 PHP
PHP的Socket网络编程入门指引
Aug 11 PHP
ThinkPHP实现更新数据实例详解(demo)
Jun 29 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
Sep 19 PHP
PHP实现的方程求解示例分析
Nov 11 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小马小结(方便查找后门的朋友)
2012/05/05 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
PHP的几个常用加密函数
2016/02/03 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
深入分析js中的constructor和prototype
2012/04/07 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
详解vue组件之间的通信
2020/08/30 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
Python字符串和字典相关操作的实例详解
2017/09/23 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
django迁移数据库错误问题解决
2019/07/29 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
python的flask框架难学吗
2020/07/31 Python
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
送货司机岗位职责
2013/12/11 职场文书
庆元旦活动总结
2014/07/09 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
入队仪式主持词
2015/07/04 职场文书
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python