2014-02-06 3 views
0

Я совершенно новый в symfony2, и я использую FOSUserBundle в своем проекте для управления пользователями. У меня возникла ситуация, когда мне приходится создавать разные типы пользователей, которым понадобятся разные действия с контроллерами/просмотр шаблонов. Моя идея заключалась в расширении функциональности регистра FOSUserBundle и передаче параметра, который будет определять, какой вид пользователя будет быть создан. Например, если я пойду на регистрацию/кандидат, это приведет к новому пользователю типа кандидата, но если я пойду на регистрацию/компанию, я получу пользователя компании. С этой идеей я мог бы реализовать, чтобы показать 2 разных формы (formtype), но я застрял на стороне контроллера, как передать параметр типа в контроллер действия и подтвердить контроллер. Я не уверен, что эта идея может работать, поэтому любая помощь будет оценена или если будет более профессиональное решение, пожалуйста, поделитесь со мной. Если мой пример не ясен, я могу предоставить фрагменты кода.Symfony2 FOSUserBundle - разные действия для регистрации для разных пользователей

Заранее спасибо.

ответ

0

Я нашел довольно простое решение для моего вопроса:

Добавление параметра на маршрут регистрации:

<route id="fos_user_registration_register" pattern="/{utype}"> 
    <default key="_controller">FOSUserBundle:Registration:register</default> 
    <default key="utype"></default> 
</route> 

Так что в контроллере я мог бы использовать этот параметр в состоянии, чтобы решить, какой тип регистрации мне нужен:

//..... 
$regtype = $request->get('utype'); 
if ($regtype ==='candidate') 
    $type = 'candidateform'; 
if ($regtype ==='company') 
    $type = 'companyform'; 

if (!empty($type)) 
    $formFactory->setType($type); 
//..... 

if ($form->isValid()) { 
//.... 
if ($regtype === 'candidate'){ 
//... 
} 
if ($regtype === 'company'){ 
//.. 
} 

Таким образом, я могу управлять визуализацией формы, а также действием.

0

Handle другой тип пользователя, вы должны использовать эту связку: https://github.com/PUGX/PUGXMultiUserBundle

+0

Спасибо за ответ, но я нашел другое решение, которое проще в моем случае. Просто я добавил пользовательский var на мой маршрут регистрации, который определит, какой тип регистрации мне нужен. – Barni

+0

, пожалуйста, пришлите мне свой код или способ решить эту проблему. Электронная почта: [email protected] – hizbul25

Смежные вопросы