路由分组有啥好处?

有时候啊 一大堆路由它们都有共同的地方,比如都使用一个中间件(过两天写)或是前缀都一样,避免代码重复 我们可以将他们分到一组中。


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']);
});

今儿又有点儿晚了- -,大K先睡了,欢迎大神来侮辱 我愿随心情改正,大家一起进步~。

Laravel5.1 路由 -路由分组的更多相关文章

  1. 自动检测ARouter路由地址分组使用冲突问题

    背景 项目中使用ARouter进行路由,由于不同上层业务模块都可能会使用到同一目标的路由地址,因此,将所有业务模块的路由地址以一种类似静态常量的方式设置在Base模块中.这样,在实际目前上加上对应此地 ...

  2. ThinkPHP---thinkphp控制器、路由、分组设置(C)

    配置文件分3类:系统配置文件,分组配置文件,应用配置文件 ①系统配置文件ThinkPHP/Conf/convention.php: ②分组 / 模块 /平台配置文件Home/Conf/config.p ...

  3. Django路由系统-分组命名匹配

    Django路由系统 分组命名匹配 ​ 在上述基本配置示例中,使用了简单的正则表达式分组匹配来捕获URL中的值并以位置参数的形式传递给视图,例如url(r'^articles/([0-9]{4})/( ...

  4. Laravel5.1的控制器分组

    Laravel5.1的控制器分组 默认的控制器时直接在app\Http\Controllers下,创建分组名字,路由配置使用:分组名\控制器名@方法名.

  5. AngularJS路由系列(2)--刷新、查看路由,路由事件和URL格式,获取路由参数,路由的Resolve

    本系列探寻AngularJS的路由机制,在WebStorm下开发.主要包括: ● 刷新路由● 查看当前路由以及所有路由● 路由触发事件● 获取路由参数 ● 路由的resolve属性● 路由URL格式 ...

  6. laravel路由之分组路由

    laravel下的分组路由可以嵌套如下: Route::group(['prefix'=>'admin'],function(){ Route::group(['prefix'=>'dtk ...

  7. laravel5.2总结--路由

      1 基本路由   1.1 定义路由的文件 app/Http/routes.php   1.2 最基本的路由: Route::get(''index", function () { ret ...

  8. laravel-5.3(1) 路由配置

    第一步: 按照上一篇搭建好工程后可以看到框架默认的 welcome 默认视图: 一般的web 开发框架是MVC设计模式,那么我们现在创建自己的控制器和视图,CMD 进入到工程根目录执行 php art ...

  9. Angular路由——路由守卫

    一.路由守卫 当用户满足一定条件才被允许进入或者离开一个路由. 路由守卫场景: 只有当用户登录并拥有某些权限的时候才能进入某些路由. 一个由多个表单组成的向导,例如注册流程,用户只有在当前路由的组件中 ...

随机推荐

  1. linux sudo使用学习记录

    sudo在linux中非常重要,它能够使普通的用户临时拥有root权限.但是如果让用户滥用sudo命令的话可能会造成严重的影响. 例如:修改root的密码,切换到root用户等等. 所以我们虽然需要赋 ...

  2. Technique Standard

    http://blog.csdn.net/cnjet/article/details/73433903 jinyaping

  3. D3.js系列——初步使用、选择元素与绑定数据

    D3 的全称是(Data-Driven Documents),顾名思义可以知道是一个被数据驱动的文档.听名字有点抽象,说简单一点,其实就是一个 JavaScript 的函数库,使用它主要是用来做数据可 ...

  4. 利用JS实现vue中的双向绑定

    Vue 已经是主流框架了 它的好处也不用多说,都已经是大家公认的了 那我们就来理解一下Vue的单向数据绑定和双向数据绑定 然后再使用JS来实现Vue的双向数据绑定 单向数据绑定 指的是我们先把模板写好 ...

  5. 查看进程id, 父进程id _How do I get the parent process ID of a given child process?

    How to get parent pid from a given children pid? I know I can mannully check it under /proc, I am wo ...

  6. linux基础教程---设置文件的主人、组别

    我们在操作linux的是要告诉文件是属于哪个主人的,哪个组别的.这样我们就须要知道该怎样设置": 设置文件的主人.组别 chown: change owner >chown    主人 ...

  7. Java8 新的日期和时间API(笔记)

    LocalDate LocalTime Instant duration以及Period 使用LocalDate和LocalTime //2017-03-20 LocalDate date = Loc ...

  8. 使用Tornado实现Ajax请求

    Ajax,指的是网页异步刷新,一般的实现均为js代码向server发POST请求,然后将收到的结果返回在页面上.   这里我编写一个简单的页面,ajax.html <html> <h ...

  9. 【POJ 1080】 Human Gene Functions

    [POJ 1080] Human Gene Functions 相似于最长公共子序列的做法 dp[i][j]表示 str1[i]相应str2[j]时的最大得分 转移方程为 dp[i][j]=max(d ...

  10. Redis 配置文件及命令详解

    ==基本配置 daemonize no 是否以后台进程启动 databases 16 创建database的数量(默认选中的是database 0) save 900 1 #刷新快照到硬盘中,必须满足 ...