Czesc. Od pewnego czasu walcze z obsluga tego typu w fomularzach. Do tej pory, radzilem sobie w taki sposob:

Tworzylem wlasny typ formularza opartego o model(w tym przypadku Tag), co pozwalalo mi na dodawanie i usuwanie tagow w locie.
  1. ->add('tags', 'collection', array('label' => 'Tagi', 'type' => new TagType(), 'allow_add' => true, 'allow_delete' => true))


Teraz chcialbym osiagnac cos innego. W moim modelu Usera(podklasa FOSuser), jest odziedziczone pole $roles(typ collection). Z racji tego ze w systemie mam tylko 3 role, nie chce korzystac z pelnej funkcjonalnosci collection, chce stworzyc prosta liste 3 opcji. Cos na wzor:
  1. ->add('roles', 'choice', array('label' => 'Tagi', 'choices' => User::getRoleList))


Probowalem w ten sposob:
  1. $builder->add('roles', 'collection', array(
  2. 'type' => 'choice',
  3. 'options' => array(
  4. 'choices' => array(User::getRoleList),
  5. ),
  6. ));

Niestety to sie nie sprawdza, poniewaz FOSuser automatycznie dodaje ROLE_USER i w przypadku gdy ustawie jakas wyzsza role, powstaje 2 lista z rola ROLE_USER.

Jak sobie tym poradzic?