Witam,

Mam taki problem. Wygenerowałem standardowo formularz, i chciałbym tylko i wyłącznie pobrać obiekt bez jego zapisu. Niestety wyskakuje błąd walidacji... kompletnie nie mam pojęcia dlaczego.

Pokaże na przykładzie o co chodzi:
to jest kod klasycznie generowany przez symfony+doctrine i to zadziała
  1. protected function processForm(sfWebRequest $request, sfForm $form)
  2. {
  3. $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
  4. if ($form->isValid())
  5. {
  6. $obj = $form->save();
  7.  
  8. $this->redirect('rejestracja/edit?id='.$obj->getId());
  9. }
  10. }

ten kod przynajmniej w teorii(dokumentacja) powinien działać tak samo:
  1. protected function processForm(sfWebRequest $request, sfForm $form)
  2. {
  3. $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
  4. if ($form->isValid())
  5. {
  6. $obj = $form->getObject();
  7. $obj->save();
  8.  
  9. $this->redirect('rejestracja/edit?id='.$obj->getId());
  10. }
  11. }

ale wyskakują mi poniższe błędy:
Validation failed in class user

2 fields had validation errors:

* 1 validator failed on mail (notnull)
* 1 validator failed on pass (notnull)


kompletnie nie mam pojęcia dlaczego, czyszczę clear-cashe i nadal nic... czy macie pomysł co może być grane?
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mea culpa

już wiem o co chodzi, przede wszystkim muszę włożyć nawet w tworzony formularz pusty obiekt biggrin.gif a po drugie przed getObject dać metodę aktualizującą ten obiekt... wink.gif zgodnie z rozdzielnością metod na te które zmieniają dane i te które pobierają dane... jeszcze kilka takich błędów i pójdą w ramach pokuty na pielgrzymkę tongue.gif

oto kod:
  1. protected function processForm(sfWebRequest $request, sfForm $form)
  2. {
  3. $form->bind($request->getParameter('user'), $request->getFiles('user'));
  4. if ($form->isValid())
  5. {
  6.  
  7. $this->form->updateObject();
  8. $user = $this->form->getObject();
  9. $user->save();
  10.  
  11. $this->redirect('rejestracja/edit?id='.$user->getId());
  12. }