Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][Symfony2]"errors" does not exist, Przesyłanie do szablonu listy błędów.
q3trm
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 26.02.2013

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


Nie mogę dojść gdzie popełniam błąd dry.gif , to mój pierwszy formularz w Symfony przykład z cookbook.


  1. public function contactAction()
  2. {
  3. $enquiry = new Enquiry();
  4.  
  5. $form = $this->createForm(new EnquiryType(), $enquiry);
  6.  
  7. $request= $this ->getRequest();
  8.  
  9. if ($request == 'POST') {
  10. $form ->bind($request);
  11.  
  12. $validator = $this->get('validator');
  13. $errors = $validator->validate($enquiry);
  14.  
  15. if ($form ->isValid()) {
  16.  
  17. if (count($errors) > 0) {
  18. return $this ->render('MultimediaBlogBundle:Default:contact.html.twig', array(
  19. 'errors' => $errors ));
  20. }
  21. }
  22. return $this -> redirect($this->generateUrl('multimedia_contact'));
  23. }
  24. return $this ->render('MultimediaBlogBundle:Default:contact.html.twig', array(
  25. 'form' => $form->createView()));
  26. }
  27.  
  28.  


  1. <ul>
  2. {% for error in errors %}
  3. <li>{{ error.message }}</li>
  4. {% endfor %}
  5. </ul>


Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. var_dump($errors);


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
q3trm
post
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 26.02.2013

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


Znalazłem pierwszy błąd

  1. if ($request == 'POST')


  1. if ($request -> getMethod() == 'POST')


teraz przynajmniej instrukcja się wykonuje snitch.gif


EDIT//
  1. public function contactAction()
  2. {
  3. $enquiry = new Enquiry();
  4.  
  5. $form = $this->createForm(new EnquiryType(), $enquiry);
  6.  
  7. $request= $this ->getRequest();
  8.  
  9. if($request-> getMethod() == 'POST') {
  10. $form ->bind($request);
  11.  
  12. $validator = $this->get('validator');
  13. $errors = $validator->validate($enquiry);
  14.  
  15.  
  16. if (count($errors) > 0) {
  17. return $this ->render('MultimediaBlogBundle:Default:contact.html.twig', array(
  18. 'errors' => $errors,
  19. 'form' =>$form ->createView(),
  20. ));
  21. }
  22.  
  23. return $this -> redirect($this->generateUrl('multimedia_contact'));
  24.  
  25. }
  26. return $this ->render('MultimediaBlogBundle:Default:contact.html.twig', array(
  27. 'form' => $form->createView()));
  28.  
  29. }
  30.  


Wszystko działa poprawnie bez użycia metody IsValid().

Ten post edytował q3trm 29.05.2013, 12:49:53
Go to the top of the page
+Quote Post
minolone
post
Post #4





Grupa: Zarejestrowani
Postów: 141
Pomógł: 24
Dołączył: 21.06.2008

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


Skąd bierzesz zmienną $request questionmark.gif Musisz dołączyć

use Symfony\Component\HttpFoundation\Request;

oraz w

public function contactAction()
dodać
public function contactAction(Request $request)

zobacz tutaj jak jest zrobione, Link
a po pozytywnym przejściu walidacji możesz te dane obsłużyć np. dodać do bazy Link

lub najprościej wygeneruj sobie wszystko za pomocą konsoli. Możesz w niej zrobić wszystko wygenerować Entity, settery i gettery, formularz, kontroler w wersji full, będziesz miał przykład jak jest zrobiony formularz jak są odbierane dane,

PS. używaj wersji developerskiej tam będziesz miał wszystko pokazane jak się coś wykrzaczy

Ten post edytował minolone 29.05.2013, 22:30:49
Go to the top of the page
+Quote Post
Crozin
post
Post #5





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

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


Dlaczego nie korzystasz ze standardowej obsługi błędów formularzy?
  1. $request= $this->getRequest();
  2.  
  3. $enquiry = new Enquiry();
  4. $form = $this->createForm(new EnquiryType(), $enquiry);
  5.  
  6. if ($request->isMethod('POST')) {
  7. $form->bind($request);
  8.  
  9. if ($form->isValid()) {
  10. return $this->redirect($this->generateUrl('multimedia_contact'));
  11. }
  12. }
  13.  
  14. return $this ->render('MultimediaBlogBundle:Default:contact.html.twig', array('form' => $form->createView()));

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 Aktualny czas: 21.08.2025 - 16:05