Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF2][SF][SYMFONY2] Problem z method, jak zmienić?
Forum PHP.pl > Forum > PHP > Frameworki
destyl
Witam, tak jak w temacie, mam problem z formularzem.

Zdefiniowałem wszystkie typy pól, ładnie juz sie wyświetla z bootstrape, ale gdy chce zobaczyć czy faktycznie zapisuje dane z formularza, to po kliknięciu buttona, strona sie odświeża i w pasku adresu przekazane są dane z formularza.. Doszedłem do wniosku ze musi być problem z metodą, ale nie wiem jak ją zmienić..

tutaj controler:
  1. public function registerAction(Request $Request){
  2.  
  3. $form = $this ->createForm( new rejestracjaType());
  4.  
  5. $form->handleRequest($Request);
  6. if($Request->isMethod('POST')){
  7. if($form->isValid()){
  8.  
  9. $savePath = $this->get('kernel')->getRootDir().'/../web/uploads/';
  10. $testForm = $form->getData();
  11.  
  12. $randVal = rand(1000, 9999);
  13. $dataFileName = sprintf('data_%d.txt', randVal);
  14.  
  15. file_put_contents($savePath.$dataFileName, print_r($testForm, TRUE));
  16.  
  17. $testForm = 'Zapisano dane formularza!';
  18. }
  19. }else{
  20.  
  21. $testForm = 'NIMA';
  22. }
  23.  
  24. return array(
  25. 'form' =>$form->createView(),
  26. 'testForm' => isset($testForm) ? $testForm : NULL,
  27. );
  28. }


a Tutaj typ:
  1. public function buildForm(FormBuilderInterface $builder, array $options)
  2. {
  3. $builder
  4.  
  5. ->add('user', 'text', array(
  6. 'label' => 'Nazww użytkownika'))
  7. ->add('email', 'email' , array(
  8. 'label' => 'Email'))
  9. ->add('pass', 'password', array(
  10. 'label' => 'Hasło'))
  11. ->add('pass2', 'password', array(
  12. 'label' => 'Powtóż hasło'))
  13. ->add('save', 'submit', array(
  14. 'label' => 'Zarejsetruj!'
  15. ));
  16. }


Po uruchomieniu strony wyświetla sie nima, wiec to musi być coś z method.... Jakieś pomysły?
Turson
Po prostu podejrzyj w źródle strony jaką metodę generuje framework. Jak generuje get to $builder->setMethod('post')
blahy
jak w twigu renderujesz tag form? {{ form_start(form) }} ?

po 2 wystarczy tak, nieptrzebnie sprawdzasz metode.

$form->handleRequest($request);

if ($form->isValid()) { ... }
Turson
Cytat
Po uruchomieniu strony wyświetla sie nima, wiec to musi być coś z method.... Jakieś pomysły?

Po uruchomieniu strony czy wysłaniu formularza?
Jeżeli po wejściu na stronę, to jest logiczne, bo to wynika z if else. Jeżeli nie ma przesłanego formularza POSTem to ustawiasz tak zmienną. Już prędzej to powinieneś ten tekst wstawiac jak się walidacja nie powiodła.
No i tutaj
  1. $dataFileName = sprintf('data_%d.txt', randVal);

zapomniałeś o $ i wstawiasz stałą z nie zmienną.

btw. widzę że kod z kursu eduweb wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.