我创建了管理面板,并希望授予某些角色,如admin,mod,support,god等。但是在同一组中,我只希望对God和Admin授予权限。我可以在一个组中执行此操作,还是应该为此路由创建一个单独的组(单独的组或仅将中间件添加到一个路由),但我更喜欢单独的组。
Route::group(['prefix' => 'admin', 'middleware' => ['roles'], 'roles' => ['administrator', 'moderator', 'support']], function () {
Route::get('/', 'AdminController@index')->name('admin.index');
Route::get('users', 'AdminController@users')->name('admin.users');
Route::get('messages', 'AdminController@messages')->name('admin.messages');
});
和单独的组
Route::group(['prefix' => 'admin', 'middleware' => ['roles'], 'roles' => ['administrator']], function () {
Route::get('finance', 'AdminController@finance')->name('admin.finance');
});
我该怎么做?我尝试过,但是即使我仅支持,我也可以使用所有财务方法。
答案 0 :(得分:1)
这将仅作为单独的组工作,因为Laravel会将所有中间件要求一次性应用到该组中的路由。
另一种选择是使用嵌套组(如果适用),但这实际上与单独的组相同:
Route::group(['prefix' => 'admin', 'middleware' => ['roles'], 'roles' => ['administrator', 'moderator', 'support']], function () {
Route::get('/', 'AdminController@index')->name('admin.index');
Route::get('users', 'AdminController@users')->name('admin.users');
Route::get('messages', 'AdminController@messages')->name('admin.messages');
Route::group(['prefix' => 'admin', 'middleware' => ['roles'], 'roles' => ['administrator']], function () {
Route::get('finance', 'AdminController@finance')->name('admin.finance');
});
});