Symfony2的复选框选择字段:禁用一个复选框(Symfony2 checkbox choice

2019-10-17 06:51发布

我有个任务做一些禁用的形式选择字段的复选框,有的不是。 有一个简单的方法来实现,如果不重写选择栏布局?

Answer 1:

您可以在选择领域的禁用状态设置:

$builder->add('myChoice', 'choice', array('attr'=>array('disabled'=>'disabled')));

或者你可以使用一个EventSubscriber听上PostSetData事件,如果你必须设置禁用状态需要一些逻辑。 检查食谱动态表单生成的实施细节。



Answer 2:

我想澄清一些关于Flavien的解决方案,但我没有足够的声誉在他的信息发表评论。

$builder->add('myChoice', 'choice', array('attr'=>array('disabled'=>'disabled')));

使用“禁用” =>“禁用”的是错误的(因为右边部分是错误的)。 它的工作原理,但被禁用(左)接受布尔和应该得到真或假。 在这种情况下,它确实有效,因为简单的东西,但0是真实的。

为什么我解释吗? 因为也许有人想用同样的形式在不同的地方,只是禁用一个输入(实际上使得它只读)。 于是,他将饲料变量来“禁用”参数,而且如果变量没有布尔它将总是导致不能输入。

TL;博士

 $builder->add('myChoice', 'choice', array('attr'=>array('disabled'=>true)));

要么

$builder->add('myChoice', 'choice', array('attr'=>array('disabled'=>false)));


文章来源: Symfony2 checkbox choice field: disable one checkbox
标签: forms symfony