Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony]bindowanie formularza
trucksweb
post
Post #1





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

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


mam formularz rejestracyjny, ktory sklada sie z pol do tworzenia konta uzytkownika i firmy. jest takze flaga -ktora rozpoznaje czy ma to byc konto firmowe jesli checkbox nie jest zaznaczony to ma nie walidowac pol odpowiedzialnych za konto firmowe.

Chcialem to zrobic w ten sposob ze nadpisze sobie funkcje bind w metodzie formularza:

  1. public function bind(array $formValues = null, array $formFiles = null)
  2. {
  3.  
  4.  
  5. if(!isset($formValues['flag_firm']))
  6. {
  7. $this['firm_name'],
  8. $this['firm_nip'],
  9. $this['firm_street'],
  10. );
  11. }
  12. parent::bind($formValues);
  13. }


ale teraz jak usune dane firmowe to wywala blad ze nie sa znane widgety odpowiedzialne za wyswietlanie pol formularza - firmowego.


W jaki inny sposob moge tego dokoac ?
Najlepiej zrobic dwa formularze jednak chcialem to upchnac w jednym bo kazde konto moze miec tylko jedna firme.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trucksweb
post
Post #2





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

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


oo dzieki, zastosuje sie do pierwszego przykladu - bradziej chyba poprawniejszy (IMG:style_emoticons/default/snitch.gif)



zrobilem cos takiego:
  1. $this->setValidators(array(
  2. ..
  3. 'firm_name' => new sfValidatorPass(),
  4. ));


  1. $this->validatorSchema->setPostValidator(new sfValidatorCallback(array(
  2. 'callback' => array($this, 'validateSchema'),
  3. )));


  1. public function validateSchema(sfValidatorBase $validator, array $values)
  2. {
  3. //print_r($values);exit;
  4. if ($values['flag_firm'] == 1 &&
  5. !$values['firm_name'])
  6. {
  7. throw new sfValidatorErrorSchema($validator, array(
  8. 'firm_name' => new sfValidatorError($validator, 'error msg'),
  9. // 'firm_name' => new sfValidatorString(array('max_length' => 1024)),
  10. // 'firm_street' => new sfValidatorString(array('max_length' => 1024)),
  11. ));
  12. }
  13. }



i mam problem bo taka walidacja nie spelnia moich wymagan - chcialbym uzywac wbudowanych walidatorow np do maila czy pol select.
Czy jest mozliwosc podlaczenia tego w taki sposob jak w powyzszych zakomentowanych liniach ?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.10.2025 - 08:40