Forms Symfony3表单覆盖实体中的默认属性集

Forms Symfony3表单覆盖实体中的默认属性集,forms,entity,symfony,Forms,Entity,Symfony,我最近才注意到我的代码不再工作了,我不确定我是否做错了什么,或者Symfony3中是否有错误 所以我得到了一个实体User,它的属性isActive在构造函数中设置为isActive=1 当我用UserType连接实体时,isActive属性的默认值突然不是1,而是NULL 下面是它的样子: $user = new User(); var_dump($user->getIsActive()); // gives 1 $form = $this->createF

我最近才注意到我的代码不再工作了,我不确定我是否做错了什么,或者Symfony3中是否有错误

所以我得到了一个实体
User
,它的属性
isActive
在构造函数中设置为
isActive=1

当我用UserType连接实体时,
isActive
属性的默认值突然不是
1
,而是
NULL

下面是它的样子:

    $user = new User();
    var_dump($user->getIsActive()); // gives 1
    $form = $this->createForm(UserType::class, $user);
    var_dump($user->getIsActive()); // gives 1
    $form->handleRequest($request);
    var_dump($user->getIsActive()); // gives NULL
public function buildForm(FormBuilderInterface $builder, array $option)
{
    $this->name($builder);
    $this->isActive($builder);
}
以下是
UserType
的外观:

    $user = new User();
    var_dump($user->getIsActive()); // gives 1
    $form = $this->createForm(UserType::class, $user);
    var_dump($user->getIsActive()); // gives 1
    $form->handleRequest($request);
    var_dump($user->getIsActive()); // gives NULL
public function buildForm(FormBuilderInterface $builder, array $option)
{
    $this->name($builder);
    $this->isActive($builder);
}
isActive
trait

trait IsActiveField
{
    public function isActive(FormBuilderInterface $builder, array $options = [])
    {
        $defaultOptions = [
           'label' => 'word.is_active',
           'choices' => ['word.no' => 0, 'word.yes' => 1],
        ];

        $options = array_merge($defaultOptions, $options);
        return $builder->add('isActive', ChoiceType::class, $options);
    }
}

用户的变量名为
$user
,这似乎很奇怪,但是
createForm
方法的第二个参数是
$program
变量:

$user = new User();
$form = $this->createForm(UserType::class, $program);

嘿,拉罗斯拉夫,谢谢你指出这一点,但这是我的坏拷贝粘贴。问题仍然存在。我没有提到这一点,但当我使用FosRestBundle通过ajax发帖时,这种情况发生在我身上,你在这个请求中发送了什么数据?