This repository was archived by the owner on Jan 8, 2026. It is now read-only.
forked from netmeansnet/NmnMultiUserBundle
-
Notifications
You must be signed in to change notification settings - Fork 93
This repository was archived by the owner on Jan 8, 2026. It is now read-only.
OVERRIDE DEFAULT REGISTRATION TEMPLATE #151
Copy link
Copy link
Open
Labels
Description
Hello,
I install PUGXMultiUserBundle and I want, to register two different classes of users, use two different templates. But instead, I have just my layout without any form in my template. If I override the register.html.twig from FOS, it's OK but I can't use it for my two different users - Customer and Company. Where I am wrong ?
Here's my config :
pugx_multi_user:
users:
Customer:
entity:
class: UserBundle\Entity\Customer
# factory:
registration:
form:
type: UserBundle\Form\Type\RegistrationCustomerFormType
name: fos_user_registration
validation_groups: [Registration, Default]
template: UserBundle:Registration:registerCustomer.html.twig
profile:
form:
type: UserBundle\Form\Type\ProfileCustomerFormType
name: fos_user_profile_form
validation_groups: [Profile, Default]
Company:
entity:
class: UserBundle\Entity\Company
registration:
form:
type: UserBundle\Form\Type\RegistrationCompanyFormType
name: fos_user_registration_company
template: UserBundle:Registration:registerCompany.html.twig
profile:
form:
type: UserBundle\Form\Type\RegistrationCompanyFormType
It's my forms:
class RegistrationCompanyFormType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, array('label'=>'Raison sociale',
'attr'=>['class'=>'form-control']))
->add('adress', TextType::class, array('label'=>'Adresse',
'attr'=>['class'=>'form-control']))
->add('city', TextType::class, array('label'=>'Ville',
'attr'=>['class'=>'form-control']))
->add('postcode', TextType::class, array('label'=>'Code Postal',
'attr'=>['class'=>'form-control']))
->add('phone', TextType::class, array('label'=>'Téléphone',
'attr'=>['class'=>'form-control']))
->add('skill', TextType::class, array('label'=>'Métier',
'attr'=>['class'=>'form-control']))
->add('email', LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\EmailType'), array('label' => 'Mail'))
->add('website', TextType::class, array('label'=>'Site internet',
'attr'=>['class'=>'form-control']))
->add('username', null, array('label' => 'Nom d\'utilisateur'))
->add('plainPassword', LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\RepeatedType'), array(
'type' => LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\PasswordType'),
'options' => array('translation_domain' => 'FOSUserBundle'),
'first_options' => array('label' => 'Mot de passe'),
'second_options' => array('label' => 'Confirmez votre mot de passe'),
'invalid_message' => 'Les mots de passe ne correspondent pas !',
))
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'UserBundle\Entity\Company',
'csrf_token_id' => 'registration',
// BC for SF < 2.8
'intention' => 'registration',
));
}
// BC for SF < 3.0
/**
* {@inheritdoc}
*/
public function getName()
{
return $this->getBlockPrefix();
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'fos_user_registration_company';
}class RegistrationCustomerFormType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('firstname', TextType::class, array('label'=>'Prénom',
'attr'=>['class'=>'form-control']))
->add('lastname', TextType::class, array('label'=>'Nom',
'attr'=>['class'=>'form-control']))
->add('adress', TextType::class, array('label'=>'Adresse',
'attr'=>['class'=>'form-control']))
->add('city', TextType::class, array('label'=>'Ville',
'attr'=>['class'=>'form-control']))
->add('postcode', TextType::class, array('label'=>'Code Postal',
'attr'=>['class'=>'form-control']))
->add('phone', TextType::class, array('label'=>'Téléphone',
'attr'=>['class'=>'form-control']))
->add('email', LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\EmailType'), array('label' => 'Mail'))
->add('username', null, array('label' => 'Nom d\'utilisateur'))
->add('plainPassword', LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\RepeatedType'), array(
'type' => LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\PasswordType'),
'options' => array('translation_domain' => 'FOSUserBundle'),
'first_options' => array('label' => 'Mot de passe'),
'second_options' => array('label' => 'Confirmez votre mot de passe'),
'invalid_message' => 'Les mots de passe ne correspondent pas !',
))
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'UserBundle\Entity\Customer',
'csrf_token_id' => 'registration',
// BC for SF < 2.8
'intention' => 'registration',
));
}
// BC for SF < 3.0
/**
* {@inheritdoc}
*/
public function getName()
{
return $this->getBlockPrefix();
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'fos_user_registration';
}My controllers
class RegistrationCompanyController extends Controller
{
public function registerAction()
{
return $this->container
->get('pugx_multi_user.registration_manager')
->register('UserBundle\Entity\Company');
}
}
class RegistrationCustomerController extends Controller
{
public function registerAction()
{
return $this->container
->get('pugx_multi_user.registration_manager')
->register('UserBundle\Entity\Customer');
}
}My templates: for Company
{% extends "::base.html.twig" %}
{% block body %}
<div style="background-color:white;">
{% block fos_user_content %}
{% trans_default_domain 'FOSUserBundle' %}
<form action="{{ path('company_registration') }}" method="POST">
{{ form(form) }}
<div>
<input type="submit" value="Enregistrez votre société" />
</div>
</form>
{% endblock fos_user_content %}
</div>
{% endblock %}For Customer:
{% extends "::base.html.twig" %}
{% block body %}
<div style="background-color:white;">
{% block fos_user_content %}
{% trans_default_domain 'FOSUserBundle' %}
<form action="{{ path('customer_registration') }}" method="POST">
{{ form_widget(form) }}
<div>
<input type="submit" value="Créez votre compte" />
</div>
</form>
{% endblock fos_user_content %}
</div>
{% endblock %}Any help please ?
ALECSQY and AlterB