Laravel Routing - 分开一些路线

时间:2015-08-05 15:37:41

标签: php laravel laravel-5

我的路线定义为:

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

我想要做的是将一些路线,尤其是editdelete放在一个群组中。

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

    Route::resource('item', 'ItemController', ['only' => ['edit', 'delete']]);
}
但是,这并不起作用。我必须逐个定义每条路线吗?或者有更好的解决方案吗?

编辑:

对不起,但似乎我没有正确地提出这个问题。所以,让我在这里做一些澄清。

我有一个基本的auth用户,可以创建和查看items。我不想要它做的是编辑和删除。

我还有一个role用户,可以执行auth可以执行的操作并编辑和删除items

基本上,普通授权用户可以访问items,而role个用户可以完全访问。

目前的代码似乎只为role个用户提供了编辑和删除功能,无法查看或创建。

为了让它更清晰,这就是我的实际路线:

Route::group(['middleware' => ['auth']], function()
{
    Route::resource('items', 'SitesController');

    Route::group(['middleware' => ['role']], function() {
        Route::resource('item', 'ItemController', ['only' => ['edit', 'delete']]);
    });
});

也许我以错误的方式解决这个问题?

1 个答案:

答案 0 :(得分:0)

上面的代码可以使用,您只是错误地命名了操作。您应该使用销毁而不是删除。请尝试以下代码:

Route::resource('item', 'ItemController');
Route::group(['middleware' => ['role']], function() {
  Route::resource('item', 'ItemController', ['only' => ['edit', 'destroy']]);
});

您可以运行 php artisan route:list 进行验证。您应该在两条路线中看到角色中间件。