【发布时间】:2019-12-08 18:00:47
【问题描述】:
我在使用 BodyConverter 时遇到了麻烦,通常我将 FOSRest 与 Symfony Forms 一起使用,但在一个新项目中我正在尝试使用 BodyConverter。 POST 请求工作正常,但我无法让 PUT 请求工作。
/**
* @Rest\View(serializerGroups={"Default"})
* @Rest\Put("/{id}", name="put")
* @ParamConverter("mission", converter="fos_rest.request_body")
*
* @param Mission $mission
* @param ConstraintViolationList $violations
* @return Mission | View
*/
public function put(Mission $mission, ConstraintViolationList $violations)
{
if(count($violations)){
return $this->view($violations, Response::HTTP_BAD_REQUEST);
}
return $this->manager->post($mission);
}
使用 BodyConverter 和 ParamConverter 我想更新在 URL 中传递 ID 的资源,但 BodyConverter 只是覆盖资源并创建一个新资源。例如:
PUT /missions/1 应该更新任务 1,但它会创建一个具有新 ID 的新任务。
【问题讨论】:
标签: rest api symfony fosrestbundle