繁体   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