Сохранение формы Propel в Symfony: неверный объект - PullRequest
1 голос
/ 20 июля 2011

У меня есть проблема, и я не знаю, где ее искать. У меня есть движущая форма, созданная на основе объекта. Объект не пустой:

$form = ModelNameForm($modelObject);

тогда я делаю привязку с данными запроса:

$form->bind(
  $request->getParameter($form->getName()), 
  $request->getFiles($form->getName())
);

Проверка:

$form->isValid();

и, наконец, сохранить:

$result = $form->save();

Дело в том, что после привязки $form->getObject() возвращает исходный объект, хотя $request->getParameter($form->getName()) содержит правильные значения. Более интересно то, что после $form->save() $form->getObject() получает правильные значения. Причиной этого может быть код, но я понятия не имею, где его искать. При каких обстоятельствах объект формы может содержать старые данные после привязки, но отображать новые, когда я делаю var_dump после сохранения?

Ответы [ 2 ]

3 голосов
/ 31 декабря 2011

Это ожидаемое поведение sfForm. Когда вы связываете испорченные значения с формой, содержащийся в ней объект не будет ничего знать об этих новых значениях, пока вы не сохраните форму. Привязка позволяет вам проверять форму, и если проверка проходит успешно, вы передаете эти новые значения в объект, вызывая $ form-> save (). Я бы посоветовал прочитать руководство Symfony 1.4 Forms здесь: http://www.symfony -project.org / forms / 1_4 / en /

1 голос
/ 20 июля 2011

Я не могу объяснить, почему (я использую Symfony в течение нескольких недель), но у меня была такая же проблема, и я исправил ее так:

$result = $form->save();
$result->save();
...