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 임베디드 형태로 작업을 검증 할 것 cascade_validation
추가
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';
}
}