Php 是否有任何干净的方法来隔离管理路由拉威尔5.1

Php 是否有任何干净的方法来隔离管理路由拉威尔5.1,php,laravel-5,laravel-5.1,Php,Laravel 5,Laravel 5.1,我的代码在下面的Routes.php中 Route::group([ 'middleware' => 'auth', ], function() { Route::get('/Categories-List', 'Category_Controller@index'); Route::get('/Create-Category', 'Category_Controller@create'); Route::post('/SaveCategory', 'Ca

我的代码在下面的
Routes.php中

Route::group([
    'middleware' => 'auth',
], function() {

    Route::get('/Categories-List', 'Category_Controller@index');
    Route::get('/Create-Category', 'Category_Controller@create');
    Route::post('/SaveCategory', 'Category_Controller@store')->middleware(['isAdmin']);
    Route::post('/UpdateCategory', 'Category_Controller@update')->middleware(['isAdmin']);
});
有什么问题吗? 还定义了其他100条路由,其中包含许多属于管理员的路由


是否有任何干净的方法来隔离管理路由?

您可以嵌套路由组:

Route::group([
    'middleware' => 'auth',
], function() {

    Route::get('/Categories-List', 'Category_Controller@index');
    Route::get('/Create-Category', 'Category_Controller@create');

    Route::group([
        'middleware' => 'isAdmin',
    ], function() {
        Route::post('/SaveCategory', 'Category_Controller@store');
        Route::post('/UpdateCategory', 'Category_Controller@update');
    });
});

您还可以通过
app/Providers/RouteServiceProvider.php
(添加另一行,如现有的
require-app\u路径('Http/routes.php');
)将管理路由放在一个完全独立的文件中。

我上周偶然发现了这一点,并在github上加了一行。您可以使用这个Laravel包()将您的管理上下文分离在一起

假设您的应用程序中有两个上下文:一个管理面板和一个RESTfulWebService。这当然是两个完全不同的上下文,因为在一个上下文中,您可能希望获得所有资源(即,包括垃圾),而在另一个上下文中,您只需要活动的资源

这是服务提供商真正派上用场的时候,唯一的问题是Laravel没有现成的解决方案来为不同的上下文加载不同的服务提供商

该软件包使您能够将不同的存储库注册到单个接口,并通过上下文的服务提供商将其绑定,使用Laravel令人惊叹的IoC容器根据所处的上下文解决需要绑定的具体实现

谢谢


Karmendra

我用@ceejayoz example+之类的组将它们分开,方法是键入“回车”并在组之间留出较大的间隔