1
嗨我想嵌入部分從FOSUserBundle註冊表單到另一個。當我嘗試添加現有電子郵件時,由於未使用唯一驗證程序,因此引發了「完整性約束違規」異常。我怎樣才能解決這個問題。當註冊表單獨使用時,驗證器工作正常。嵌入時驗證規則不起作用FOSRegistrationFormType
主要形式有:
class SoldierType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
...
->add('user', new NameFormType('Application\Sonata\UserBundle\Entity\User'))
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'validation_groups' => array('registration')
));
}
public function getName()
{
return 'wnc_soldierbundle_soldiertype';
}
}
NameForm
namespace Application\Sonata\UserBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use FOS\UserBundle\Form\Type\RegistrationFormType as BaseForm;
class NameFormType extends BaseForm
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('firstname')
->add('lastname')
->add('email', 'email', array('label' => 'form.email', 'translation_domain' => 'FOSUserBundle'));
}
public function getName()
{
return 'fos_user_name';
}
}