Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel路由-分离一些路由_Php_Laravel_Laravel 5 - Fatal编程技术网

Php Laravel路由-分离一些路由

Php Laravel路由-分离一些路由,php,laravel,laravel-5,Php,Laravel,Laravel 5,我的路线定义为: Route::resource('item', 'ItemController'); 我想做的是将其中一些路由,特别是edit和delete放在一个组中 Route::group(['middleware' => ['role']], function() { Route::resource('item', 'ItemController', ['only' => ['edit', 'delete']]); } 但这不管用。那么,我必须逐一定义每条路线

我的路线定义为:

Route::resource('item', 'ItemController');
我想做的是将其中一些路由,特别是
edit
delete
放在一个组中

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

    Route::resource('item', 'ItemController', ['only' => ['edit', 'delete']]);
}
但这不管用。那么,我必须逐一定义每条路线吗?还是有更好的解决办法

编辑:

对不起,我好像问得不好。因此,让我在这里澄清一下

我有一个基本的
auth
用户,可以创建和查看
项目
。我不希望它做的是编辑和删除

然后,我还有一个
角色
用户,负责执行
auth
的所有操作,可以编辑和删除
项目

因此,基本上,常规授权用户可以访问
项目
,而
角色
用户可以完全访问

当前代码似乎只赋予
角色
用户编辑和删除功能,而不提供查看或创建功能

更清楚地说,我的实际路线是这样的:

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

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

也许我用了错误的方法?

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

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

您可以运行php artisan route:list进行验证。您应该会看到在您的两条路由中启用了角色中间件。

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

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

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

你想只将中间件分配给编辑和删除吗?是的@michael,基本上,每个人都可以查看/创建
项目
,但只有具有特定角色的用户可以编辑或删除它们。对不起,我可能只是不理解这个问题。你能展示一下我们正在讨论的中间件吗?我的其他评论被删除了吗?奇怪的我想做的是让常规授权用户能够访问
创建
索引
存储
。虽然我希望“角色”用户拥有所有这些功能,还有
编辑
删除
。好的,现在我明白了。然后我认为应该像我说的那样分配中间件,如果用户不是角色用户,那么应该失败。你想只分配中间件来编辑和删除吗?是的@michael,基本上,每个人都可以查看/创建
项目
,但只有具有特定角色的用户才能编辑或删除它们。对不起,我可能只是不理解这个问题。你能展示一下我们正在讨论的中间件吗?我的其他评论被删除了吗?奇怪的我想做的是让常规授权用户能够访问
创建
索引
存储
。虽然我希望“角色”用户拥有所有这些功能,还有
编辑
删除
。好的,现在我明白了。然后我认为应该像我说的那样分配中间件,如果用户不是角色用户,那么中间件应该失败。