我无法在注册表单中添加字段

时间:2017-10-16 21:29:13

标签: symfony fosuserbundle

之前我从未遇到过此问题,但我正在尝试从 FOSUserBundle 向我的注册表单中添加一个字段。在结果中,我只有捆绑包中的默认表单,但没有得到我的birthday_date字段。我做错了什么?

RegistrationType类:

<?php

namespace AppBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class RegistrationType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('birthday_date');
    }

    public function getParent()
    {
        return 'fos_user_registration';
    }

    public function getName()
    {
        return 'app_user_registration';
    }
}

config.yml:

fos_user:
    db_driver: orm # other valid values are 'mongodb' and 'couchdb'
    firewall_name: main
    user_class: AppBundle\Entity\User
    registration:
        form:
            name: app_user_registration

services.yml

app.form.registration:
    class: AppBundle\Form\RegistrationType
    tags:
        - { name: form.type, alias: app_user_registration }

我只是按照文档说明进行操作,所以我不知道问题在哪里

1 个答案:

答案 0 :(得分:0)

您的getParent()函数应该返回父表单的类而不是名称,这些更改附带版本&gt; 2.8,检查Overriding a Form Type

所以你的表单类型应该变成:

<?php

namespace AppBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;


class RegistrationType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('birthday_date');
}
public function getParent()
{
    return 'FOS\UserBundle\Form\Type\RegistrationFormType';
}
public function getName()
{
    return 'app_user_registration';
}
}