2016-06-07 59 views
1

与此网址 http://localhost:8888/api/v1/apartments/delete,我想删除一个确定的公寓,而不通过该URL的ID。我使用POSTMAN发送数据,但无法使用Request或Input类捕获它。

routes.php文件

Route::delete('/api/v1/apartments/delete', '[email protected]'); 

ApartmentApiController

public function destroy(Request $request) 
{ 
    dd($request->all()); 
} 

enter image description here

在这样的更新请求方法是工作,但不是在这里DELETE。为什么是这样?我有点好奇,但我还没有找到它。

这是一个很好的做法,删除在这样的URL传递的项目ID?我应该这样做吗? http://localhost:8888/api/v1/apartments/delete/13

+0

这是最好的做法,不仅删除时有'id'在URL(更容易找到当你删除了错误的东西记录了什么事),而且还删除任何数据库时,需要某种确认对象(它可以防止通过XSS删除项目)。 – grochmal

+0

只是一个旁注,我与邮递员和Laravel有问题;通过实际的发布路线发送数据是可行的,但是与邮递员进行发布请求不会。最终不得不切换到另一个REST客户端;可能你也遇到过这种情况,但很难肯定地说。 –

+0

@grochmal它的所有安全与JWT,但感谢您的建议。 – suarsenegger

回答

0

由于要传递的ID在路线:

Route::delete('apartments/delete/{id}', '[email protected]'); 

你需要注入在你的方法与Request对象一起。

public function destroy($id, Request $request) 
{ 
    dd($id); 
}