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.
public function setDefaultOptions(\Symfony\Component\OptionsResolver\OptionsResolverInterface $resolver) { 'data_class' => '...\Entity\User', 'validation_groups' => function(\Symfony\Component\Form\FormInterface $form) { $data = $form->getData(); if(User::TYPE_PRIVATE != $data->getType()) { } else { } } )); }
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ą:
Bez skutku.
registration: form: validation_groups: []
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