路由分组有啥好处?

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


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. 如何在Ubuntu上使用Glances监控系统

    导读 Glances 是一个用于监控系统的跨平台.基于文本模式的命令行工具.它是用 Python 编写的,使用 psutil 库从系统获取信息.你可以用它来监控 CPU.平均负载.内存.网络接口.磁盘 ...

  2. 转:Android推送技术研究

    Android推送技术研究 字数5208 阅读4026 评论5 喜欢35 前言 最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些 ...

  3. 最小生成树之Prim(普里姆)算法

    关于什么是Prim(普里姆算法)? 在实际生活中,我们常常碰到类似这种一类问题:如果要在n个城市之间建立通信联络网, 则连通n个城市仅仅须要n-1条线路.这时.我们须要考虑这样一个问题.怎样在最节省经 ...

  4. java压缩 GZIP进行简单压缩,ZIP进行多文件保存

    java压缩  GZIP进行简单压缩,ZIP进行多文件保存 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhbmdydWkxOTg4/font/5a6 ...

  5. python3自己主动爬笑话

    学校的server能够上外网了,所以打算写一个自己主动爬取笑话并发到bbs的东西,从网上搜了一个笑话站点,感觉大部分还不太冷.html结构例如以下: watermark/2/text/aHR0cDov ...

  6. homestead虚拟机,通过npm下载依赖包和解决运行gulp报错问题 yarn出错问题

    homestead虚拟机,通过npm下载依赖包和解决运行gulp报错问题 yarn出错问题 1. 在虚拟器运行 npm 下载依赖组件时报错: npm ERR! EPROTO: protocol err ...

  7. Linux信号(signal) 机制分析(转)

    [摘要]本文分析了Linux内核对于信号的实现机制和应用层的相关处理.首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理.接着分析了内核对于信号的处理流程包括信号的触发/注册/执 ...

  8. docker发布spring cloud应用

    原文地址:http://www.cnblogs.com/skyblog/p/5163691.html 本文涉及到的项目: cloud-simple-docker:一个简单的spring boot应用 ...

  9. python--web项目

    zope:一个容器项目Plone:一个基于zope的工作流和内容管理项目trac:一个项目管理(任务指派.bug追踪项目,可以和subversion集成)moinmoin:一个强力的weiki系统

  10. 学习使用master.dbo.spt_values表

    如果要生成的临时表中有个连续的数字列,或者连续的日期列,如下所示: 2012-1-1 2012-1-2 2012-1-3 ... ... 可以这样写: declare @begin datetime, ...