Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [symfony] bindowanie
blackroger
post 22.09.2009, 15:35:36
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 8.11.2008

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


Dzień dobry. Mam taki problem, że:

akcja:
  1. $this->form->bind([url="http://www.php.net/array"]array[/url]('usid'=>$this->getRequest()->getParameter('usid'),
  2. 'login'=>$this->getRequest()->getParameter('login'),
  3. 'stare_haslo'=>$this->getRequest()->getParameter('stare_haslo'),
  4. 'nowe_haslo'=>$this->getRequest()->getParameter('nowe_haslo'),
  5. 'nowe_powtorz'=>$this->getRequest()->getParameter('nowe_powtorz'),
  6. 'imie'=>$this->getRequest()->getParameter('imie'),
  7. 'nazwisko'=>$this->getRequest()->getParameter('nazwisko'),
  8. 'miasto'=>$this->getRequest()->getParameter('miasto'),
  9. 'mail'=>$this->getRequest()->getParameter('mail')
  10. ));
  11. //$this->form->bind($request->getParameter('change_user'));
  12.  
  13. if($this->form->isValid())//jezeli poprawny formularz
  14. {
  15.  
  16. [url="http://www.php.net/echo"]echo[/url] 'Jest valid';
  17.  
  18. }//koniec valid if
  19.  


formularz:(zakomentowana linijka - nazwy pól normalne)
  1. //$this->widgetSchema->setNameFormat('change_user[%s]');


i to działa i jest valid w przypadku dobrze wpisanych danych


a to nie działa w przypadku dobrze wpisanych danych:
akcja:
  1. $this->form->bind($request->getParameter('change_user'));


formularz:
  1. $this->widgetSchema->setNameFormat('change_user[%s]');


w drugim przypadku walidacja działa i wszystko jest dobrze, widzi tablice, ale nie ustawia zmiennej valid. Poprostu formularz ładuje się na nowo...

Ten post edytował batman 24.09.2009, 07:09:17
Powód edycji: [batman]: bbcode
Go to the top of the page
+Quote Post
Crozin
post 22.09.2009, 19:40:07
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Coś się pochrzaniło z listingami kodów - jakbyś mógł poprawić.

Co do problemu - powinno działać takie coś bez problemów, mógłbyś pokazać kompletny kod jakim sprawdzasz działanie tego? Gdzieś indziej prawdopodobnie robisz błąd.
Go to the top of the page
+Quote Post
BigB
post 22.09.2009, 19:46:39
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 1
Dołączył: 28.07.2009

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


Witaj.

Wyświetlasz gdzieś w templacie błędy? Bo jeśli formularz nie przeszedł poprawnie walidacji, to powinny Ci się wyświetlić komunikaty błędów od walidatorów i po nich spróbuj dojść do problemu.
Upewnij się też, że ustawiłeś walidatory dla wszystkich pól formularza, jeśli korzystasz z NameFormat.
Go to the top of the page
+Quote Post
blackroger
post 22.09.2009, 20:44:55
Post #4





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 8.11.2008

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


Dzięki za odpowiedzi. Wcześniej już rozwiązałem problem, ale BigB ma rację. Nie było walidatora dla jednego pola i to psuło całość. Po różnych testach i próbach stwierdzam, że chyba najlepiej dziedziczyć po BasexxxxxForm, który jest generowany automatycznie i nadpisywać tą klasę swoją klasą. Pozwala to uniknąć tego typu problemów, zarówno w momencie tworzenia obiektu i wkładaniu do konstruktora całego obiektu jako argumentu, tak i przy bindowaniu. Można dzięki temu zaoszczędzić sporo czasu...
Go to the top of the page
+Quote Post

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: 13.06.2025 - 07:18