Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][Symfony2] Dynamiczne grupy walidacji w FOSUserBundle, FOSUserBundle
masterix
post
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

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: 23.08.2025 - 23:01