Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF][Symfony2] Walidacja formularza bez klasy z polami typu entity
DavidPL
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 27.04.2004
Skąd: Rzeszów

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


Natknąłem się na następujący problem i nie wiem jak sobie z nim poradzić...
Mam formularz który nie jest powiązany z entity... Formularz zawiera pola proste (tekst, data) oraz pola wyboru książki powiązane z entity.

  1. $builder
  2. ->add('id', 'integer', array('label' => 'Nr rezerwacji', 'required' => false))
  3. ->add('name', 'text', array('label' => 'Imię i nazwisko', 'required' => false))
  4. ->add('book', 'entity', array('label' => 'Książka', 'required' => false, 'class' => 'AppBundle:Book', 'choices' => $this->getOrderedBooks()));


Jako parametr choices wchodzi tablica elementów AppBundle:Book.
Formularz ten nie posiada zdefiniowanych walidatorów, natomiast AppBundle:Book posiada walidatory np takiej jak wymagany autor książki czy tytuł.

Teraz problem polega na tym, że podczas walidacji takiego formularza w kontrolerze przez $form->isValid() dostaję informację o błędzie, że np pole autor dla AppBundle:Book jest wymagane.
W jaki sposób można wyłączyć kaskadową walidację dla tego pola?

Ten post edytował DavidPL 1.08.2015, 01:53:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DavidPL
post
Post #2





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 27.04.2004
Skąd: Rzeszów

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


Wszystkie książki w bazie mają autora (jak i pozostałe potrzebne rzeczy).
Rzecz w tym, że ja tam nie chcę nic robić z encją książki - chcę jedynie aby ktoś wybrał jedną z książek z listy (stąd typ pola entity), dlatego też zaskoczyło mnie to, że formularz chce walidować encję książki pomimo iż nie oczekuje tego on niego.
Gdybym przy okazji walidacji formularza który przedstawiłem chciał walidować encję książki to ustawiłbym dla pola walidator typu Valid.
Formularz nie ma w ugóle ostawionej opcji cascade_validation (zresztą domyślnie jest chyba false o ile mi wiadomo) ale czy to w ogóle ma znaczenie jeśli formularz nie ma zagnieżdżonych innych formularzy?
Czy to jest normalne zachowanie? A może to ja po prostu nie zrozumiałem idei pola typu entity?
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: 28.12.2025 - 15:49