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 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
PHP 日期时间函数的高级应用技巧
Oct 10 PHP
PHP 飞信好友免费短信API接口开源版
Jul 22 PHP
解密ThinkPHP3.1.2版本之模板继承
Jun 19 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
Sep 09 PHP
php用户注册时常用的检验函数实例总结
Dec 22 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
PHP-FPM之Chroot执行环境详解
Aug 03 PHP
PHP实现的DES加密解密实例代码
Apr 06 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
Laravel如何创建服务器提供者实例代码
Apr 15 PHP
PHP实现抽奖功能实例代码
Jun 30 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
多个PHP中文字符串截取函数
2013/11/12 PHP
最新版本PHP 7 vs HHVM 多角度比较
2016/02/14 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
JavaScript中合并数组的N种方法
2014/09/16 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
Python制作简单的网页爬虫
2015/11/22 Python
mac下如何将python2.7改为python3
2018/07/13 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
简单的Python调度器Schedule详解
2019/08/30 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
pyqt5中动画的使用详解
2020/04/01 Python
python中如何进行连乘计算
2020/05/28 Python
python如何绘制疫情图
2020/09/16 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
《沉香救母》教学反思
2014/04/19 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
Go语言入门exec的基本使用
2022/05/20 Golang