簡體   English   中英

Symfony格式:保存后顯示舊值

[英]Symfony form : old values are displayed after saving

我有一個帶有許多復選框的symfony表單:

    $this->form = new SocialSettingsForm($user);

    if ($request->isMethod(sfRequest::POST)) {
      $this->form->bind($request->getParameter('social'));
      if ($this->form->isValid()) {
        $this->form->save();
        $this->success = true;
      }
    }

問題如下:保存表單后,復選框動作異常

如果用戶選中了一個,則在保存后顯示為選中狀態(正常行為);但是,如果用戶未選中一個,則在保存后仍將顯示為選中狀態。

我在表單值上做了var_dump,未選中的復選框具有NULL值,所以我不明白為什么仍要選中它們。

謝謝你的幫助。

如果使用布爾值/整數字段來保存復選框值,則將sfValidatorBoolean用作復選框。 還將輸入值轉換為有效的布爾值。 因此null將轉換為0並將保存在數據庫中。

解決方法更新

在不起作用的較舊版本中,可以在復選框之前添加與復選框名稱相同且值為0的隱藏輸入。 如果未選中該復選框,則將發送隱藏的輸入值,否則將發送該復選框的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM