以下是我的控制器编辑操作的一部分。方法是PUT
。
public function editRentalAction(Request $request, Rental $rental): JsonResponse
{
$rentalManager = $this->get('rental.rental_manager');
$form = $this->createForm(RentalType::class, $rental);
$form->submit(json_decode($request->getContent(), true));
当我尝试从请求中提交一些实体数据(我想要更新的数据)时,所有其他实体数据都会丢失(设置为null
)。我怎么能只更改我发送的这个参数?
请求有效负载:
{"example_parameter": "example"}
答案 0 :(得分:1)
PUT
将取消空属性。
最佳解决方案:使用PATCH
代替PUT
。
替代方案:使用PUT
发送整个对象(不仅是更新的属性)。
答案 1 :(得分:0)
解决方案在submit()
到false
设置第二个参数,并将方法更改为PATCH
以下是说明:http://symfony.com/doc/current/form/direct_submit.html#form-call-submit-directly