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 相关文章推荐
如何提高MYSQL数据库的查询统计速度 select 索引应用
Apr 11 PHP
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
PHP GD 图像处理组件的常用函数总结
Apr 28 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
那些年我们错过的魔术方法(Magic Methods)
Jan 14 PHP
php 不使用js实现页面跳转
Feb 11 PHP
php调整服务器时间的方法
Apr 03 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
php校验公钥是否可用的实例方法
Sep 17 PHP
PHP7新特性
Mar 09 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
截获网站title标签之家内容的例子
2006/10/09 PHP
11个PHP 分页脚本推荐
2011/08/15 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
浅析JavaScript异步代码优化
2019/03/18 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
python 算法 排序实现快速排序
2012/06/05 Python
Python获取apk文件URL地址实例
2013/11/01 Python
python实现在字符串中查找子字符串的方法
2015/07/11 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
Python time库基本使用方法分析
2019/12/13 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
2020/02/14 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
个人应聘自我评价分享
2013/11/18 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
烹调加工管理制度
2014/02/04 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
维稳承诺书
2015/01/20 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript