Я хочу предоставить разные страницы входа / регистрации для моих пользователей, но пользователи одного и того же класса. Я не хочу заполнять базу данных дополнительными таблицами.
pugx_multi_user:
users:
medics:
entity:
class: MedAppBundle\Entity\User
registration:
form:
type: MedAppBundle\Form\MedicRegistrationType
name: app_medics_registration
validation_groups: [Registration, Default]
template: MedAppBundle:Registration:registerMedic.html.twig
profile:
form:
type: MedAppBundle\Form\ProfileType
validation_groups: [Profile, Default]
patients:
entity:
class: MedAppBundle\Entity\User
registration:
form:
type: MedAppBundle\Form\PatientsRegistrationType
template: MedAppBundle:Registration:registerPacient.html.twig
profile:
form:
type: MedAppBundle\Form\ProfileType
validation_groups: [Profile, Default]
А вот и класс регистрации:
class RegController extends Controller
{public function registerPatientAction()
{
return $this->container
->get('pugx_multi_user.registration_manager')
->register('MedAppBundle\Entity\User');
}public function registerMedicAction()
{
return $this->container
->get('pugx_multi_user.registration_manager')
->register('MedAppBundle\Entity\User');
}
К сожалению, все формы оказываются последним типом пользователя, а именно pacients. Эта конфигурация не работает в основном потому, что UserDiscriminator
принимает значения по классам вместо имен пользовательских типов.
Есть ли какая-либо конфигурация, которая помогает или у кого-нибудь есть идеи, как мне этого добиться?
Не использовать PuGXMultiUserBundle
для ваших нужд это не имеет смысла.
Просто используйте FOSUserBundle
и создайте дополнительные маршруты для ваших шаблонов регистрации / входа в систему и установите их все в соответствующем FOSUser-Controller-Action.
Таким образом, все регистрационные формы для действия FOS register-и все регистрационные формы для действия fos-register (вы можете посмотреть, какие действия FOS использует для входа / регистрации в файлах FOS-маршрутизации)
Других решений пока нет …