har*_*ryg 7 php routes laravel-4
在Laravel中,通过使用路由资源快速生成一系列路由非常方便:
Route::resource('things'ThingsController');
Run Code Online (Sandbox Code Playgroud)
这将为CRUD操作生成所有必需的RESTful路由.其中一个是PUT/PATCH路由,可以定义如下:
PUT/PATCH things/{id} ThingsController@update things.update
Run Code Online (Sandbox Code Playgroud)
我已经读过,最好明确定义每个路由而不是使用路由资源,但我如何定义上面的PUT/PATCH路由.我明白我能做到
Route::put('thing/{id}', ['as' => 'things.update']);
Run Code Online (Sandbox Code Playgroud)
要么
Route::patch('thing/{id}', ['as' => 'things.update']);
Run Code Online (Sandbox Code Playgroud)
但是第二个会覆盖或与第一个冲突,允许things.update路由名称仅引用PUT或PATCH请求.如何显式创建资源路由创建的组合PUT/PATCH路由?
经过繁琐的搜索,尝试以下方法;
Route::match(array('PUT', 'PATCH'), "/things/{id}", array(
'uses' => 'ThingsController@update',
'as' => 'things.update'
));
Run Code Online (Sandbox Code Playgroud)
这允许您通过动词数组限制请求.
或者您可以限制资源;
Route::resource('things', 'ThingsController',
array(
'only' => array('update'),
'names' => array('update' => 'things.update')
));
Run Code Online (Sandbox Code Playgroud)
两者都应提供相同的结果,但请注意它们未经过测试.
| 归档时间: |
|
| 查看次数: |
6904 次 |
| 最近记录: |