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_path('Http/routes.php');
)。
我上周偶然发现了这个,并在github上发布了它。您可以使用这个Laravel包(Laravel上下文)将您的管理上下文全部分离在一起。
假设您的应用程序中有两个上下文:管理面板和RESTful WebService。这当然是两个完全不同的上下文,因为在一个上下文中,你可能想要获得所有资源(即,包括垃圾),而在另一个上下文,你只想要活动的资源。
当服务提供商真的派上用场时,唯一的问题是Laravel没有现成的解决方案来为不同的上下文加载不同的服务提供商。
这个包让您可以将不同的存储库注册到一个单一的接口,并通过您的上下文服务提供商将它们绑定,使用Laravel令人惊叹的IoC容器来解决我们需要绑定的具体实现,具体取决于我们所处的上下文。
谢谢,
Karmendra