Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony2.3][SF][SF2] Problem z walidacją formularza
ZaqU
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

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


Mam problem z walidacją formularza, która - wydaje się - nie chce działać tak jak powinna.

Po czym to stwierdzam?
Po pierwsze metoda $form->isValid() zwraca zawsze true, nawet jeżeli dane są całkowicie niezgodne z tym co trzymam w validation.yml. Po drugie $form->getErrorsAsString() zwraca cały ciąg [FieldName1]: No errors, [FieldName2]: No errors ... itd.


Formularz tworzę w następujący sposób:
  1. public function indexAction()
  2. {
  3. return $this->render('MyBundle:MyView:index.html.twig', array(
  4. "form" => $this->createForm( new CategoryType(), new Category() )->createView()
  5. ));
  6. }


CategoryType:
  1. class CategoryType extends AbstractType {
  2. public function buildForm(FormBuilderInterface $builder, array $options) {
  3.  
  4. $builder ->add('name', 'text')
  5. ->add('categoryId', 'entity', array(
  6. 'class' => 'MyBundle:Category',
  7. 'property' => 'name',
  8. ));
  9. }
  10.  
  11. public function getName() {
  12. return 'my_form_name';
  13. }
  14. }


I oczywiście validation.yml. Nie wiedziałem którą wersję zastosować (czy dla Form/Type/CategoryType czy dla Entity/Category) dlatego użyłem obu, ale żadna nie działa.
  1. MyBundle/Form/Type/CategoryType:
  2. properties:
  3. - name:
  4. - NotBlank: ~
  5. - Length:
  6. min: 3
  7. max: 30
  8.  
  9. MyBundle/Entity/Category:
  10. properties:
  11. - name:
  12. - NotBlank: ~
  13. - Length:
  14. min: 3
  15. max: 30


Problem na pewno jest błahy, ale nie potrafię go rozwiązać już od wczoraj, a wszystko robiłem zgodnie z przykładami w dokumentacji Symfony.

Ten post edytował ZaqU 26.01.2015, 17:53:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
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%)
-----


a to isValid to gdzie masz questionmark.gif


--------------------
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
ZaqU
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

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


W osobnej metodzie tego kontrolera (czyt. formularz generuje się i wyświetla w indexAction(), a jest wysyłany i przetwarzany w formAction() ).

  1. public function formAction() {
  2. $form = $this->createForm( new CategoryType(), new Category() );
  3.  
  4. if( $this->get('request')->getMethod() == 'POST' ) {
  5. $form->handleRequest( $this->get('request') );
  6. var_dump( $form->isValid() );
  7. }
  8. }


var_dump() zawsze zwraca true.

Ten post edytował ZaqU 26.01.2015, 20:03:12
Go to the top of the page
+Quote Post
seeba
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 1
Dołączył: 28.01.2010

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


Miałem podobny problem z walidacją, właśnie wtedy gdy miałem powiązaną encję samą z sobą.

Wydaje mi się, że problem jest związany z powiązaniem z samym sobą. Niestety nie udało mi się tego rozwiązać.
Go to the top of the page
+Quote Post
ZaqU
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

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


Temat bardzo stary, ale udało mi się samodzielnie dojść do rozwiązania tego problemu. W logice samego kodu nie ma żadnego błędu. Problem leżał w pliku .yml, a dokładniej w ukośnikach. Okazało się, że przez przypadek użyłem niewłaściwej wersji ukośnika. \ to wersja dozwolona, nastomiast / są niedozwolone.

Wątek można zamknąć.
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: 20.08.2025 - 14:25