Forms Symfony3表单覆盖实体中的默认属性集
我最近才注意到我的代码不再工作了,我不确定我是否做错了什么,或者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
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发帖时,这种情况发生在我身上,你在这个请求中发送了什么数据?