Я пытаюсь интегрировать FOSUserBundle в своем веб-приложении (на основе symfony). Мое приложение должно иметь две разные формы регистрации; один для профиля компании и один для простого профиля пользователя. Я хотел бы, чтобы пользовательский объект из FOSUserBundle был отделен от компании. Я попытался расширить компанию из пользовательского объекта; таким образом, это легко создать RegistrationFormType так:Несколько форм регистрации с FOSUserBundle
`` `
class RegistrationFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
// add your custom field
$builder->add('name');
$builder->add('works', 'entity', array(
'class' => 'SkaLabFrontEndBundle:Works',
'property' => 'name'
));
$builder->add('address');
....
}
$builder->add('email');
$builder->add('username');
$builder->add('plainPassword', 'repeated', array(
'type' => 'password',
'invalid_message' => 'The password fields must match.',
'options' => array('attr' => array('class' => 'password-field')),
'required' => true,
'first_options' => array('label' => 'Password'),
'second_options' => array('label' => 'Repeat Password')));
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'SkaLab\Bundle\UserBundle\Entity\User'
));
}
public function getName()
{
return 'skalab_bundle_userbundle_registration_form';
}
}
Но я не хочу, чтобы расширить компанию от объекта пользователя, так как в этом случае, когда я запустить команду последующей :
php app/console doctrine:schema:update --force
, чтобы обновить схему db, он должен поместить поля пользователя fos в таблицу компаний. Insteed, я бы хотел, чтобы пользовательская таблица (fos_user) отделена от таблицы компании и выполняла взаимно-однозначные отношения между таблицей компаний и пользователей. Очевидно, что в регистрационной форме должны быть поля, связанные с таблицей пользователя и компании.
Как я могу реализовать что-то подобное?