限制路线允许的方法

时间:2016-07-24 22:00:48

标签: php laravel laravel-5 laravel-5.2 laravel-routing

我试图删除其中一个控制器上的PUT方法,但是如果不经过并将每个方法映射到一个函数,我找不到这样做的方法。

我的路线文件中有以下内容:

Route::group(['prefix' => 'api'], function() {
    $defaultOptions = ['except' => ['create', 'edit']];

    Route::resource('recipies', 'RecipieController', $defaultOptions);
    //This is the one that I am trying to restrict
    Route::resource('recipies.ingredients', 'Recipie\IngredientController', ['except' => ['create', 'edit', 'show']]); 

    Route::resource('ingredients', 'IngredientController', $defaultOptions);
});

我知道我可以做以下事情来完成我想要的东西,但我希望有一些选项可以限制允许的方法

Route::get('recipies/{recipie_id}/ingredients', 'Recipie\IngredientController');
Route::patch('recipies/{recipie_id}/ingredients/{ingredient_id}', 'Recipie\IngredientController');
Route::delete('recipies/{recipie_id}/ingredients/{ingredient_id}', 'Recipie\IngredientController');

虽然上述方法有效,但我觉得它很混乱,我希望找到一个更清洁的解决方案。

1 个答案:

答案 0 :(得分:0)

PUT 方法映射到资源控制器的更新方法。将此方法添加到排除方法列表中:

Route::resource('recipies.ingredients', 'Recipie\IngredientController', ['except' => ['create', 'edit', 'show', 'update]]);