Symfony 2 单选按钮布尔问题?
Symfony 2 Radio Button Boolean Issue?
好的,我是 运行 symfony 2.7.8。我有一个用户摘要表单,我在其中添加了一个似乎有效的 'active' 状态选项,因为如果我愿意,它允许我设置用户 active/non-active。
但是,当用户设置为非活动 (0) 时,它不会检查该单选选项。如果用户处于活动状态 (1),它将默认选中。我只是做错了什么吗?
活动'Add'部分
$ActiveState = [0 => 'Non-Active', 1 => 'Active'];
->add('active', 'choice', [
'label' => 'Active State',
'multiple' => false,
'choices' => $ActiveState,
'expanded' => true,
'label_attr' => ['class' =>'Active']
])
这就是我构建用于加载用户的表单的方式
$User = $this->getDoctrine()
->getRepository('XXXXBundle:Users')
->find($id); <- If i passed in url e.g. /user/ID-HERE
$EditUser = $this->createForm(new UserType(),$User,[
'action' => $this->generateUrl('UserUpdate',['id' => $id]),
'method' => 'PUT'
]);
当我 select 任一单选按钮时,它会更新该用户,但只预先检查了一个活动用户?
那我做错了什么?
欢迎大家的帮助,ps。如果有人要我 post 所有控制器功能或用户表单,请告诉我。
谢谢。
我对布尔值 属性 也有同样的问题(false-0 不起作用,true-1 起作用)。我为此表单元素添加了视图转换器以使其正常工作。
->add(...)
之后
$builder->get('active')->addViewTransformer(new \Symfony\Component\Form\CallbackTransformer(
function ($original) {
return $original ? 1 : 0;
},
function ($submitted) {
return $submitted ? true : false;
}
));
好的,我是 运行 symfony 2.7.8。我有一个用户摘要表单,我在其中添加了一个似乎有效的 'active' 状态选项,因为如果我愿意,它允许我设置用户 active/non-active。
但是,当用户设置为非活动 (0) 时,它不会检查该单选选项。如果用户处于活动状态 (1),它将默认选中。我只是做错了什么吗?
活动'Add'部分
$ActiveState = [0 => 'Non-Active', 1 => 'Active'];
->add('active', 'choice', [
'label' => 'Active State',
'multiple' => false,
'choices' => $ActiveState,
'expanded' => true,
'label_attr' => ['class' =>'Active']
])
这就是我构建用于加载用户的表单的方式
$User = $this->getDoctrine()
->getRepository('XXXXBundle:Users')
->find($id); <- If i passed in url e.g. /user/ID-HERE
$EditUser = $this->createForm(new UserType(),$User,[
'action' => $this->generateUrl('UserUpdate',['id' => $id]),
'method' => 'PUT'
]);
当我 select 任一单选按钮时,它会更新该用户,但只预先检查了一个活动用户?
那我做错了什么?
欢迎大家的帮助,ps。如果有人要我 post 所有控制器功能或用户表单,请告诉我。
谢谢。
我对布尔值 属性 也有同样的问题(false-0 不起作用,true-1 起作用)。我为此表单元素添加了视图转换器以使其正常工作。
->add(...)
$builder->get('active')->addViewTransformer(new \Symfony\Component\Form\CallbackTransformer(
function ($original) {
return $original ? 1 : 0;
},
function ($submitted) {
return $submitted ? true : false;
}
));