Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony]sfWidgetFormInputFile()
Gribo
post 7.07.2009, 18:06:25
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 17
Dołączył: 1.11.2007
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Witam mam formularz który działa dobrze ale jest jeden szczegół, który mnie irytuje.
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:

  1. <?php
  2. class rejestracjaActions extends sfActions
  3. {
  4. /**
  5.   * Executes index action
  6.   *
  7.   * @param sfRequest $request A request object
  8.   */
  9.  public function executeIndex(sfWebRequest $request)
  10.  {
  11.      $this->form=new RejestracjaForm();
  12.      if ($request->isMethod('post')) {
  13.           $this->form->bind($request->getParameter('uzytkownicy'), $request->getFiles('uzytkownicy'));
  14.  
  15.           if ($this->form->isValid()) {
  16.               try {
  17.                  $file = $this->form->getValue('awatar');
  18.                  $filename = 'uploaded_'.sha1($file->getOriginalName());
  19.                  $extension = $file->getExtension($file->getOriginalExtension());
  20.                  $file->save(sfConfig::get('sf_upload_dir').'/'.$filename.$extension);
  21.                  $this->form->save();
  22.                  $this->redirect('rejestracja/dziekujemy');
  23.           } catch (PropelException $e) {
  24.               $this->redirect('rejestracja/blad');
  25.           }}
  26.          
  27.          }
  28.  }
  29. ?>


  1. <?php
  2. class RejestracjaForm extends BaseUzytkownicyForm {
  3.    public function configure() {
  4.      
  5.        unset($this['usuniety'],$this['miasto'],$this['osobie'],
  6.                $this['usid'],$this['created_at'],$this['updated_at']
  7.        );
  8.    
  9.      
  10.       $this->setWidget('powtorz',new sfWidgetFormInputPassword());
  11.       $this->setValidator('powtorz',new sfValidatorString(array('max_length' => 45, 'required' => true)));
  12.       $this->widgetSchema->moveField('powtorz',sfWidgetFormSchema::AFTER,'haslo');
  13.      
  14.      
  15.       $this->widgetSchema->setFormFormatterName('list');
  16.      
  17.  $this->validatorSchema->setPostValidator(new sfValidatorAnd(array(
  18.      new sfValidatorSchemaCompare('haslo', '==', 'powtorz',
  19.            array(),
  20.            array('invalid' => 'Hasło "%left_field%" Nie zgadza się z "%right_field%"')
  21.          ),
  22.      new sfValidatorPropelUnique(array('model' => 'Uzytkownicy', 'column' => array('login')),array('invalid' => 'Login %value% już istnieje')
  23.          ))
  24.        ));
  25.  
  26.  
  27.       }
  28. }
  29. ?>


--------------------
Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 16:41