【问题标题】:Lost previous entity data after submit form Symfony 3提交表单 Symfony 3 后丢失以前的实体数据
【发布时间】:2017-09-25 14:13:54
【问题描述】:

这是我的控制器编辑操作的一部分。方法是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"}

【问题讨论】:

  • 你使用的是哪个 symfony 版本?
  • 这是 Symfony 3.3

标签: forms symfony symfony-forms


【解决方案1】:

解决方案是将submit()中的第二个参数设置为false,并将方法更改为PATCH

这里是描述:http://symfony.com/doc/current/form/direct_submit.html#form-call-submit-directly

【讨论】:

    【解决方案2】:

    PUT 将使空属性无效。

    最佳解决方案:使用PATCH 而不是PUT

    替代方案:使用PUT 发送整个对象(不仅是更新的属性)。

    【讨论】:

    • PATH 有同样的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 2015-08-08
    • 2012-04-11
    • 2022-07-21
    • 2017-01-14
    • 1970-01-01
    相关资源
    最近更新 更多