Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][Symfony2] Dynamiczne grupy walidacji w FOSUserBundle, FOSUserBundle
masterix
post 10.05.2014, 11:15:56
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 7.09.2004

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


Witam,

korzystając z FOSUserBundle, chcę rozszerzyć formularz rejestracji, co udało się zgodnie z dokumentacją. Natomiast problem mam przy walidacji, w zależności od wybranego pola typu użytkownika potrzebuje wykorzystać różne grupy. Zrobiłem to zgodnie z dokumentacją symfony, korzystając z setDefaultOptions w klasie formularza, ale jest to kompletnie ignorowane.
  1. public function setDefaultOptions(\Symfony\Component\OptionsResolver\OptionsResolverInterface $resolver)
  2. {
  3. $resolver->setDefaults(array(
  4. 'data_class' => '...\Entity\User',
  5. 'validation_groups' => function(\Symfony\Component\Form\FormInterface $form)
  6. {
  7. $data = $form->getData();
  8. if(User::TYPE_PRIVATE != $data->getType())
  9. {
  10. return array('Default', 'Registration', 'company');
  11. }
  12. else
  13. {
  14. return array('Default', 'Registration');
  15. }
  16. }
  17. ));
  18. }

Próbowałem też przypisać jedną grupę poprzez 'validation_groups' => array('company'), ale i to nie działało. Cały czas toolbar pokazuje tylko grupy Default i Registration, zdefiniowane przez FOSUserBundle. Próbowałem w konfiguracji napisać pustą tablicą:
  1. registration:
  2. form:
  3. validation_groups: []
Bez skutku.

Kod decydujący o grupach jest kompletnie ignorowany. Jak ten problem rozwiązać?

Na razie jedyne rozwiązanie jakie przyszło mi do głowy to po prostu nadpisać kontroler Registration i korzystać bezpośrednio z typu, stworzonego przeze mnie. W ten sposób reguły walidacji są uwzględniane.

Pozdrawiam

Ten post edytował masterix 10.05.2014, 16:50:41
Go to the top of the page
+Quote Post
pyro
post 11.05.2014, 20:26:42
Post #2





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


  1. var_dump(User::TYPE_PRIVATE != $data->getType()); exit;


?


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
masterix
post 22.05.2014, 21:09:24
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 7.09.2004

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


Jak już pisałem w pierwszym poście, kod się w ogóle nie wykonywał, żaden var_dump czy inny die.
Go to the top of the page
+Quote Post
skowron-line
post 22.05.2014, 21:35:41
Post #4





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

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


A ty nadpisałeś klasę formularza czy dopisałeś to setDefaults 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

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: 5.05.2025 - 06:03