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 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
Oct 09 PHP
php关于array_multisort多维数组排序的使用说明
Jan 04 PHP
php实现的双向队列类实例
Sep 24 PHP
php支付宝接口用法分析
Jan 04 PHP
smarty模板引擎从php中获取数据的方法
Jan 22 PHP
php简单实现发送带附件的邮件
Jun 10 PHP
PHP结合Jquery和ajax实现瀑布流特效
Jan 07 PHP
Thinkphp事务操作实例(推荐)
Apr 01 PHP
PHP 使用二进制保存用户状态的实例
Jan 29 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
PHP PDOStatement::getAttribute讲解
Feb 01 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 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批量删除数据
2007/01/18 PHP
Javascript中的数学函数
2007/04/04 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
JavaScript之引用类型介绍
2012/08/10 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
2016/10/15 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
深入研究React中setState源码
2017/11/17 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
2019/06/06 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
基于python cut和qcut的用法及区别详解
2019/11/22 Python
Python内置函数property()如何使用
2020/09/01 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
客服专员岗位职责范本
2013/11/29 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
招聘专员岗位职责
2014/03/07 职场文书
库房保管员岗位职责
2014/04/07 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
服装设计专业求职信
2014/06/16 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android