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 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
PHP连接SQLServer2005 的问题解决方法
Jul 19 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
php中in_array函数用法探究
Nov 25 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
PHP curl使用实例
Jul 02 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
Aug 15 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 PHP
php的单例模式及应用场景详解
Feb 27 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 魔术函数使用说明
2010/05/14 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
jquery里的each使用方法详解
2010/12/22 Javascript
js中更短的 Array 类型转换
2011/10/30 Javascript
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
jquery获取tagName再进行判断
2014/05/29 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
vue使用video插件vue-video-player详解
2020/10/23 Javascript
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
浅析Python中的join()方法的使用
2015/05/19 Python
Pycharm学习教程(1) 定制外观
2017/05/02 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
python爬取抖音视频的实例分析
2021/01/19 Python
西班牙多品牌鞋店连锁店:Krack
2018/11/30 全球购物
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
使用C#编写创建一个线程的代码
2013/01/22 面试题
励志演讲稿300字
2014/08/21 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis
python pygame入门教程
2021/06/01 Python