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数字格式化
Dec 06 PHP
php 来访国内外IP判断代码并实现页面跳转
Dec 18 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
CI框架中集成CKEditor编辑器的教程
Jun 09 PHP
采用memcache在web集群中实现session的同步会话
Jul 05 PHP
php中file_get_contents与curl性能比较分析
Nov 08 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
php操作MongoDB类实例
Jun 17 PHP
如何使用PHP对网站验证码进行破解
Sep 17 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
PHP PDOStatement::execute讲解
Jan 31 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 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
大师制作的中短波矿石收音机
2020/04/02 无线电
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
Python操作json数据的一个简单例子
2014/04/17 Python
Python写入CSV文件的方法
2015/07/08 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
python Pandas 读取txt表格的实例
2018/04/29 Python
python 多线程重启方法
2019/02/18 Python
在python里从协程返回一个值的示例
2019/02/19 Python
Python PIL图片添加字体的例子
2019/08/22 Python
nginx搭建基于python的web环境的实现步骤
2020/01/03 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
数控技术与应用毕业生自荐信
2013/09/24 职场文书
护士的自我鉴定
2014/02/07 职场文书
十佳护士获奖感言
2014/02/18 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
工程安全生产协议书
2014/11/21 职场文书
企业宣传语大全
2015/07/13 职场文书
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS