Laravel5.1框架路由分组用法实例分析


Posted in PHP onJanuary 04, 2020

本文实例讲述了Laravel5.1框架路由分组用法。分享给大家供大家参考,具体如下:

路由分组有啥好处?

有时候啊 一大堆路由它们都有共同的地方,比如都使用一个中间件(过两天写)或是前缀都一样,避免代码重复 我们可以将他们分到一组中。

1 路由分组可以共享哪些属性?

  • 中间件 middleware。
  • 控制器的命名空间 namespace。
  • 子域名 domain
  • 路由前缀

1.1 中间件

关于中间件大K还没有写笔记介绍,这里先简单说下 中间件就是接收到请求后验证一些东西或相应后验证一些东西,比如Laravel自带的Auth中间件 就是验证用户有没有登录进来,如果用户没用登录,那么就会自动跳转到登录页面,我们完全不用实现这一方面的逻辑。

好啦 回归正题,咱一块儿看看路由分组咋写:

/**
 * 这就是一个路由分组 /user和/user/profile都将使用auth中间件。
 */
Route::group(['middleware' => 'auth'], function (){
  Route::get('/user', function (){
  });
  Route::get('/user/profile', function (){
  });
});

1.2 路由前缀

/**
 * 路由前缀呢 就是讲此分组中的所有路由路径前加个前缀
 */
Route::group(['prefix' => 'admin'], function (){
  /**
   * 路由分组是可以嵌套的哦
   */
  Route::group(['middleware' => 'auth'], function (){
    /**
     * 这条路由不仅使用auth中间件,而且还加了admin前缀,我们通过/admin/user才能访问
     */
    Route::get('/user', function (){
    });
    Route::get('/user/profile', function (){
    });
  });
  /**
   * 访问路径是:/admin
   */
  Route::get('/', function (){
  });;
});

1.3 子域名

/**
 * 比如我们可以输入larger来访问路由,在子路由中可以通过参数来把larger取到。
 */
Route::group(['domain' => '{account}.myapp.com'], function () {
  Route::get('user/{id}', function ($account, $id) {
    //
  });
});

注意:如果想测试子域名你需要使用homestand来设置你的域名。

1.4 命名空间

这又是一个没写的点 这里包含控制器的内容,先看例子吧 明天就学控制器了 倒时候做笔记。

/**
 * 只要指明了命名空间,那么在子路由中所使用的所有控制器都位于App\Http\Controller\Admin这个命名空间下。
 */
Route::group(['namespace' => 'Admin', 'prefix' => 'admin'], function(){
  /**
   * 其实HomeController在App\Http\Controller\Admin这个命名空间下。
   */
  Route::get('/', 'HomeController@index');
});

1.5 分组命名

补充一点,前一篇的基础文章我们学了给路由命名,那么分组可不可以命名呢,Yo Man。。当然可以:

/**
 * 跟普通路由一样 也是用as来命名但是首字母最好大写后面跟俩冒号 代表它是一个分组 如果这样写 我们就可以通过 route('Admin::index')方式来找到它了
 */
Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'as' => 'Admin::'], function(){
  Route::get('/', ['as' => 'index','uses' => 'HomeController@index']);
});

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
真正的ZIP文件操作类(php)
Jul 21 PHP
PHP strtr() 函数使用说明
Nov 21 PHP
php_xmlhttp 乱码问题解决方法
Aug 07 PHP
php并发对MYSQL造成压力的解决方法
Feb 21 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
使用淘宝IP库获取用户ip地理位置
Oct 27 PHP
php的memcache类分享(memcache队列)
Mar 26 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
PHP生成唯一订单号
Jul 05 PHP
Java中final关键字详解
Aug 10 PHP
php简单实现文件或图片强制下载的方法
Dec 06 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
Laravel5.1 框架路由基础详解
Jan 04 #PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 #PHP
PHP+MySQL实现在线测试答题实例
Jan 02 #PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 #PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 #PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 #PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 #PHP
You might like
php编写的一个E-mail验证类
2015/03/25 PHP
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
django使用channels2.x实现实时通讯
2018/11/28 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
vue实现二级导航栏效果
2019/10/19 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
Python3实现Web网页图片下载
2016/01/28 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
通用求职信范文模板分享
2013/12/27 职场文书
个性与发展自我评价
2014/02/11 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
Java基于字符界面的简易收银台
2021/06/26 Java/Android
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python
讲解Python实例练习逆序输出字符串
2022/05/06 Python