Форма Symfony: старые значения отображаются после сохранения - PullRequest
1 голос
/ 26 августа 2011

У меня есть форма 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, поэтому я не понять, почему они все еще проверены.

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 26 августа 2011

Если вы используете логическое / целочисленное поле для сохранения значения флажка, используйте sfValidatorBoolean для своих флажков.Он также преобразует входное значение в допустимое логическое значение.Таким образом, ноль будет преобразован в 0 и будет сохранен в базе данных.

Обновление с временным решением

В старых версиях, где это не работает, вы можете добавить скрытый ввод с тем же именем, что и флажок, и значением 0, перед флажком.Если флажок не установлен, будет отправлено скрытое значение ввода, в противном случае будет отправлено значение флажка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...