Symfony3 fosuserbundle覆盖registrationForm

时间:2017-12-17 20:48:26

标签: fosuserbundle default-value

我尝试通过添加邮政编码来覆盖RegistrationBundle。

但是在twig寄存器表单中,当它加载时,邮政编码字段不为空,并且在

中写有“user”
<input type="text">

在密码字段中,它也不是空的

<input type="password">

当我使用“http://localhost:8000/app_dev.php/en/register/”时会出现此错误,但如果我使用端口8001运行其他服务器(如“http://localhost:8001/app_dev.php/en/register/”),则不会出现此错误!有什么事 ? enter image description here

你能解释一下为什么吗?

您好,感谢您的评论。所以,我也覆盖了我的FOSUserBundle控制器!这是我的表格:

private $em;

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $this->em = $options['em'];
    $builder            
        ->add('firstname', TextType::class)
        ->add('lastname', TextType::class)
        ->add('postalcode', TextType::class, array(
                                                'attr'=> array('class'=>'postalcode form-control', 
                                                                'maxlength'=>4,
                                                                'value'=>''))
                                            )
        ->add('city', ChoiceType::class, array(
                                'attr'=>array('class'=>'city form-control')))
        ->add('conditions', CheckboxType::class, array('required' => true))
            ;
    $city = function(FormInterface $form, $codepostal){

        $localitestofind = $this->em->findBy(array('codepostal'=>$codepostal));
        $localites = array();

        if($localitestofind)
        {
            foreach($localitestofind as $localitetofind)
            {
                $localites[$localitetofind->getNom()] = $localitetofind->getNom();
            }
        }
        $form->add('city', ChoiceType::class, array(
                                'attr'=>array('class'=>'city form-control'), 
                                'choices'=> $localites));
    };
    $builder->get('postalcode')->addEventListener(FormEvents::POST_SUBMIT, function(FormEvent $event) use ($city){
        $city($event->getForm()->getParent(), $event->getForm()->getData());
    });
}

你的权利,但我不知道为什么我的浏览器自动完成这两个字段。我删除了浏览器的缓存,我删除了cookie,...我在其他端口上没有这个问题(8000 vs 8001)

非常感谢您的帮助

0 个答案:

没有答案