[英]Laravel Routing - Separate some routes
我將路線定義為:
Route::resource('item', 'ItemController');
我要做的是將其中一些路由放入其中,尤其是在組內進行edit
和delete
。
Route::group(['middleware' => ['role']], function() {
Route::resource('item', 'ItemController', ['only' => ['edit', 'delete']]);
}
但是,這不起作用。 那我是否必須一一定義每條路線? 還是對此有更好的解決方案?
編輯:
抱歉,看來我沒有正確提出問題。 因此,讓我在這里做出一些澄清。
我有一個基本的auth
用戶,可以創建和查看items
。 我不希望它做的就是編輯和刪除。
然后,我還有一個role
用戶,它可以執行auth
可以做的所有事情以及編輯和刪除items
。
因此,基本上,普通的授權用戶可以對items
具有某些訪問權限,而role
用戶可以具有COMPLETE訪問權限。
當前代碼似乎僅賦予role
用戶編輯和刪除功能,而沒有查看或創建的功能。
為了更加清楚,這是我的實際路線:
Route::group(['middleware' => ['auth']], function()
{
Route::resource('items', 'SitesController');
Route::group(['middleware' => ['role']], function() {
Route::resource('item', 'ItemController', ['only' => ['edit', 'delete']]);
});
});
也許我會以錯誤的方式進行操作?
上面的代碼將起作用,您只是錯誤地命名了操作。 您應該使用destroy而不是delete 。 嘗試以下代碼:
Route::resource('item', 'ItemController');
Route::group(['middleware' => ['role']], function() {
Route::resource('item', 'ItemController', ['only' => ['edit', 'destroy']]);
});
您可以運行php artisan route:list進行驗證。 您應該在兩條路由中看到已啟用角色中間件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.