Laravel 4 对象化"分组路由"辅助工具

laravel-route-group

对象化分组路由辅助工具

使用前的准备

在 composer.json 文件中申明依赖:

"five-say/laravel-route-group": "1.*"

/app/config/app.php 中设置“服务提供者”与“别名”

‘providers‘ => array(
    ...
    ‘FiveSay\LaravelRouteGroup\ServiceProvider‘,
),
‘aliases‘ => array(
    ...
    ‘RouteGroup‘ => ‘FiveSay\LaravelRouteGroup\Facade‘,
),

使用方法

RouteGroup::make()->controller(‘UserController‘)->go(function ($route) {
    $route->get(‘/‘)->uses(‘index‘);
});

想知道它为我们注册了什么路由?我们来加一个小尾巴 ->dd() 就像下面这样:

RouteGroup::make()->controller(‘UserController‘)->go(function ($route) {
    $route->get(‘/‘)->uses(‘index‘);
})->dd();

虽然对象化了,但总觉的代码量反而更多了是不是?没关系,让我们来个霸气点的:

RouteGroup::make(‘user‘)->asPrefix(‘user‘)->controller(‘UserController‘)
->go(function ($route) {
    $route->index()->create()->store()->show()->edit()->update()->destroy();
})->dd();

现在有点感觉了?噢不,官方貌似也提供了一个方法 Route::resource(‘user‘, ‘UserController‘);!完败?不,这里可以做到更多:

RouteGroup::make(‘user‘)->asPrefix(‘user‘)->controller(‘UserController‘)
    ->go(function ($route) {
        $route
            ->index(  )
            ->create( )->before(‘allowCreate‘)
            ->store(  )->before(‘allowCreate‘)
            ->show(   )
            ->edit(   )->before(‘allowEdit‘  )
            ->update( )->before(‘allowEdit‘  )
            ->destroy()->before(‘allowDelete‘);
        # 禁用
        $route->get(‘/{id}/ban‘  )->as(‘ban‘  )->uses(‘ban‘  )->before(‘auth‘)->has(‘ban‘);
        # 解除禁用
        $route->get(‘/{id}/unban‘)->as(‘unban‘)->uses(‘unban‘)->before(‘auth‘)->has(‘ban‘);
    })->dd();

看看我们都完成了哪些路由的注册:

注意 has() 需配合“路由权限过滤器”使用:

Route::filter(‘hasAccess‘, function ($route, $request, $permission) {
    if (! user()->hasAccess($permission)) {
        App::abort(403);
    }
});

上例中的 user()->hasAccess($permission) 只是一个例子,作用是“获取当前用户实例,并判断用户是否有给定的操作权限”,需根据实际情况自行调整。

哦,对了,这里还有个大尾巴 ->ddAll() 它将输出在此之前,由此辅助注册的所有路由信息:

RouteGroup::make(‘user‘)->asPrefix(‘user‘)->controller(‘UserController‘)
    ->go(function ($route) {
        ...
    })->ddAll();

Laravel 4 对象化"分组路由"辅助工具

时间: 2024-10-19 12:27:08

Laravel 4 对象化"分组路由"辅助工具的相关文章

laravel路由之分组路由

laravel下的分组路由可以嵌套如下: Route::group(['prefix'=>'admin'],function(){ Route::group(['prefix'=>'dtk'],function(){ Route::get('/getapi','[email protected]'); }); Route::group(['prefix'=>'qtk'],function(){ Route::get('/getapi','[email protected]'); });

Laravel教程 二:路由,视图,控制器工作流程

Laravel教程 二:路由,视图,控制器工作流程 此文章为原创文章,未经同意,禁止转载. View Controller 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就要进入Laravel的神奇世界了,主要是讲解Laravel的Router,Views,Controllers的工作流程,目的也就是让大家明白Laravel在处理一个get请求的时候是如何工作的. 在开始之前,我们首先得将我们的服务器启动起来,如果你使用Laravel的artisan,你可以直接: p

新版的复制统计工具介绍,微信加粉推广辅助工具,增强了复制统计功能以外,新增了二维码轮播,电话拨打统计

今年已经发展到了3.x版本,新版的比老版本新增了很多功能,除了之前已有的微信号在线管理,和复制统计,以及网页状态监控等功能以外.新增了扫码统计,二维码轮播,微信号自动上下控制,手动控制,拨打电话统计,点击复制,打开微信等,还有更强大的拦截功能.到现在为止,我们应该是最完善的微信加粉推广辅助工具了. 并且我们一直提供免费版,相对于付费版功能并无过多缩减,只是限制了能统计的落地页的数量,因为统计流量巨大,如果免费开放更多会统计的数量会占用更多的服务器资源造成服务器压力过大,从而服务器成本也会直线上升

VSCode 小鸡汤 第01期 - REST Client 简单好用的接口测试辅助工具

介绍 今天给大家介绍一个后端开发辅助的好工具 -- REST Client,插件如其名这就是一个 REST 的客户端插件,把我们的 VSCode 转化为一个 REST 接口测试的利器 我们一般都会用 PostMan 来完成接口测试的工作,因为用起来十分简单快捷,但是一直以来我也在寻找更好的方案,一个不用切换窗口多开一个 app 的方案 -- 终于在使用 VSCode 一段时版本间,我找到了 REST Client 插件,初看 REST Client 插件的时候,会觉得他十分的简陋,但是在使用一段

net辅助工具列表

最近对.net的辅助工具比较感兴趣,网上也已经有.net的十个必备工具的帖子了,这里提供了一份全面的工具列表: Code generation NVelocity CodeSmith X-Code .NET XGoF - NMatrix / DEVerest Compilation eXtensible C# - ResolveCorp Mono DotGNU - GNU Obfuscation LSW-IL-Obfuscator - Lesser Software Demeanor for .

Rhythmk 学习 Hibernate 04 - Hibernate 辅助工具 之 JBoos Tool

1.安装JBoos Tool Help -> Install new Software 然后添加: http://download.jboss.org/jbosstools/updates/development http://download.jboss.org/jbosstools/updates/stable/ 稍等一刻,选择 Hibernate tool 下一步 ,完成后重启Eclipse即可. 2.项目配置文件生成: 2.1 新建一项目,项目右键生成相关配置 然后如图: 2.2 此处需

不需要用任何辅助工具打包Qt应用程序

不需要用任何辅助工具打包Qt应用程序.方法如下:    生成release文件后,双击里面的exe文件,会弹出一个对话框,里面提示缺少哪一个DLL文件, 然后根据该文件名到你安装QT软件的目录下的/bin文件夹里找到相应DLL文件,复制到release文件夹里 ,注意一定要到/bin目录下查找,因为QT安装目录里有多个同名的DLL文件,但功能不同.这样不断循环 添加所需DLL文件,添加五六个之后软件就可以运行了

【辅助工具】20款优秀的移动产品原型和线框图设计工具(二)

接前一篇:[辅助工具]20款优秀的移动产品原型和线框图设计工具(一):http://www.cnblogs.com/haochuang/p/3997140.html 11.WireframeSketcher WireframeSketcher是一款强大的.灵活的线框图和原型快速创作工具,适用于桌面app和移动app开发者.WireframeSketcher可以作为单独的app,也可作为一个Eclipse 插件. WireframeSketcher 还是一款简单的带有手绘风格的创作工具,这样你就不

PowerTool(杀毒辅助工具) V4.6 中文免费绿色版

软件名称: PowerTool(杀毒辅助工具)软件语言: 简体中文授权方式: 免费软件运行环境: Win7 / Vista / Win2003 / WinXP 软件大小: 968KB图片预览: 软件简介:目前版本主要功能:1. 所有进程的枚举(包括内核中隐藏的进程)2. 所有文件的枚举(包括内核中隐藏的文件)3. 进程中所有模块的枚举(包括内核中隐藏的模块)4. 进程的强制结束5. 进程中模块的强制卸载6. 模块被哪些进程加载的检索7. 查看文件/文件夹被占用的情况8. 可以Unlock占用文件