Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Форма регистрации юзеров с указанием группы.
Форумы портала PHP.SU » » CMS и фреймворки » Форма регистрации юзеров с указанием группы.

Страниц (1): [1]
 

1. digi - 04 Сентября, 2012 - 14:07:48 - перейти к сообщению
Стоит задача предоставить возможность юзерам при регистрации выбрать свою группу. Работа с юзерами на базе FOSUserBundle, расширил форму:

CODE (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 добавить его в группу, например таким образом:

CODE (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. caballero - 04 Сентября, 2012 - 14:45:42 - перейти к сообщению
и зачем брать Симфони, которая явно не для начинающих, а теперь не знать куда там копать.
3. digi - 04 Сентября, 2012 - 14:47:14 - перейти к сообщению
каждый симфонист когда то был начинающий ;) а решать задачи - это здорово! Улыбка
4. digi - 05 Сентября, 2012 - 10:41:42 - перейти к сообщению
теперь поле в форму добавляю так:

CODE (php):
скопировать код в буфер обмена
  1. $builder->add('groups', 'entity', array(
  2.     'class' => 'Acme\UserBundle\Entity\Group',
  3.     'property' => 'title',
  4.     'required' => true,
  5.     'expanded' => true,
  6. ));


сохранение происходит корректно, но неполучается настроить валидацию Недовольство, огорчение( описываю валидацию так:
CODE (text):
скопировать код в буфер обмена
  1. Acme\UserBundle\Entity\User:
  2.     properties:
  3.         groups:
  4.             - Choice: { choices: [group_a, group_b], message: Choose a valid group.}


пробовал также и
CODE (text):
скопировать код в буфер обмена
  1.             - Choice: { choices: ["1", "2"], message: Choose a valid group.}


но всегда получаю сообщение: Choose a valid group.

есть мысли как можно заставить пропускать только заданный список групп?

 

Powered by ExBB FM 1.0 RC1