За последние 24 часа нас посетили 23440 программистов и 1555 роботов. Сейчас ищут 863 программиста ...

Symfony2: Форма регистрации юзеров с указанием группы.

Тема в разделе "Прочие вопросы по PHP", создана пользователем d1gi, 4 сен 2012.

  1. d1gi

    d1gi Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    Стоит задача предоставить возможность юзерам при регистрации выбрать свою группу. Работа с юзерами на базе FOSUserBundle, расширил форму:

    Код (PHP):
    1. // Acme\UserBundle\Form\Type\RegistrationFormType.php
    2.  
    3. $builder->add('my_group', 'choice', array(
    4.     'choices' => array(
    5.         'group_a' => 'А',
    6.         'group_b' => 'Б',
    7.     ),            
    8.     'data' => 'group_b',
    9.     'expanded'  => true,
    10. )); 
    Теперь надо сделать валидацию, чтобы через my_group могло проходить либо group_a, либо group_b.

    И вторая задача, после успешной валидации, надо создать юзера, а на базе поля my_group добавить его в группу, например таким образом:

    Код (PHP):
    1. $user->addGroup($this->get('fos_user.group_manager')->findGroupByName('group_a'));
    2.  
    3. $this->get('fos_user.user_manager')->updateUser($this->getUser()); 
    Подскажите плиз, как это сделать, куда копать?
     
  2. mrdez

    mrdez Активный пользователь

    С нами с:
    3 июн 2012
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Латвия
    Код (Text):
    1.  
    2. $user = new User; // должен extends FOS\UserBundle\Entity\User
    3. $form = $this->createForm(
    4.     new RegistrationFormType(),
    5.     $user
    6. );
    Код (Text):
    1.  
    2. $builder->add('Groups'); //SF должна сама определить что это EntityChoice
    3. //preferred_choices в SF2.1 не работает так как она работал в SF2.0