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 相关文章推荐
php桌面中心(二) 数据库写入
Mar 11 PHP
js下函数般调用正则的方法附代码
Jun 22 PHP
php 文章采集正则代码
Dec 28 PHP
php学习之变量的使用
May 29 PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
深入PHP运行环境配置的详解
Jun 04 PHP
PHP把小数转成整数3种方法
Jun 30 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
May 13 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 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内存不够用的快速解决方法
2013/10/26 PHP
php中的比较运算符详解
2013/10/28 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
2015/12/31 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
php时间戳转换代码详解
2019/08/04 PHP
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
最常用的12种设计模式小结
2011/08/09 Javascript
ie下动态加态js文件的方法
2011/09/13 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
js实现电灯开关效果
2021/01/19 Javascript
python简单猜数游戏实例
2015/07/09 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
PyCharm更改字体和界面样式的方法步骤
2019/09/27 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
python主要用于哪些方向
2020/07/05 Python
Mamaearth官方网站:印度母婴护理产品公司
2019/10/06 全球购物
关于元旦的广播稿
2014/02/16 职场文书
关于安全的演讲稿
2014/05/09 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang