簡體   English   中英

Laravel路由-分隔一些路由

[英]Laravel Routing - Separate some routes

我將路線定義為:

Route::resource('item', 'ItemController');

我要做的是將其中一些路由放入其中,尤其是在組內進行editdelete

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM