Otóż gdy podczas wypełniana formularza zrobię jakiś błąd (zaznaczam że jedno z pól to sfWidgetFormInputFile()) to Formularz dobrze się zwaliduje jednak wczytana wcześniej ścieżka do pliku który wczytałem do pola sfWidgetFormInputFile(), nie powróciła mimo że błąd był w innym polu. Przez to muszę wyszukiwać pliku graficznego od nowa na dysku i go wczytywać. Czy to jest jakiś bug? czy coś źle robię oto kody:
<?php class rejestracjaActions extends sfActions { /** * Executes index action * * @param sfRequest $request A request object */ public function executeIndex(sfWebRequest $request) { $this->form=new RejestracjaForm(); if ($request->isMethod('post')) { $this->form->bind($request->getParameter('uzytkownicy'), $request->getFiles('uzytkownicy')); if ($this->form->isValid()) { try { $file = $this->form->getValue('awatar'); $filename = 'uploaded_'.sha1($file->getOriginalName()); $extension = $file->getExtension($file->getOriginalExtension()); $file->save(sfConfig::get('sf_upload_dir').'/'.$filename.$extension); $this->form->save(); $this->redirect('rejestracja/dziekujemy'); } catch (PropelException $e) { $this->redirect('rejestracja/blad'); }} } } ?>
<?php class RejestracjaForm extends BaseUzytkownicyForm { public function configure() { $this['usid'],$this['created_at'],$this['updated_at'] ); $this->setWidget('powtorz',new sfWidgetFormInputPassword()); $this->setValidator('powtorz',new sfValidatorString(array('max_length' => 45, 'required' => true))); $this->widgetSchema->moveField('powtorz',sfWidgetFormSchema::AFTER,'haslo'); $this->widgetSchema->setFormFormatterName('list'); new sfValidatorSchemaCompare('haslo', '==', 'powtorz', ), )) )); } } ?>