Forms Symfony:选择属性数组不显示单选按钮
我一直在尝试将HTML属性添加到单选按钮中,但不知何故它不起作用。我正在使用内置的Forms Symfony:选择属性数组不显示单选按钮,forms,symfony,Forms,Symfony,我一直在尝试将HTML属性添加到单选按钮中,但不知何故它不起作用。我正在使用内置的choice\u attr选项。在这种情况下,我不想使用可调用的,因为choice\u attr的定义指出,该值可以是可调用的、字符串或数组。我想使用数组。下面是代码,我做错了什么 ->add('plan', ChoiceType::class, array( 'choices' => array( 'Basic' => 0,
choice\u attr
选项。在这种情况下,我不想使用可调用的,因为choice\u attr
的定义指出,该值可以是可调用的、字符串或数组。我想使用数组。下面是代码,我做错了什么
->add('plan', ChoiceType::class, array(
'choices' => array(
'Basic' => 0,
'Superb (+ €9)' => 1,
'Super (+ €18)' => 2,
'Rrah' => 3
),
'expanded' => true,
'data' => 0,
'choice_attr' => [
1 => ['data-price' => '0'],
2 => ['data-price' => '9'],
3 => ['data-price' => '18'],
4 => ['data-price' => '0']
])
)
choice_attr用于HTML属性Blupfisk。 请参阅文档: choice_attr函数的参数必须是$val、$key、$index中的一个,它表示您使用的“choices”数组的值、键和索引。所以你可以试试:
'choice_attr' => function($val) {
$price = 0;
if ($val == 1) {
$price = 9;
}
elseif ($val == 2) {
$price = 18;
}
return ['data-price' => $price];
}
但是data-*是一个有效的html属性。它适用于另一种情况,在这种情况下,我使用callable来分配数据的缺货属性。但在这种情况下,如果不需要调用,它似乎不起作用。所以这是可行的,但为什么普通数组不起作用呢。因为如果你能简单地传递一些数据,那么编写需要处理的代码就毫无意义了choice_attr'=>函数($plan){$price=0;if($plan==1){$price=9;}elseif($plan==2){$price=18;}返回['data-price'=>$price];})你好,谢谢。然而,这是我在上面的评论中已经做过的。文档中说,
choice\u attr
值可以是数组、可调用或字符串。那么,为什么在原始示例中我的数组不起作用呢?不,文档清楚地说明了属性数组:“如果每个选择的属性相同”。上面的示例还显示了一个变量$plan
,该变量不是函数的工作方式。。。您应该使用$val
,它是值。请确保您再次阅读文档,这需要一段时间才能理解。好的方面,我不知何故错过了这一部分,尽管它只占用了两句话。如果你删除答案的第一部分,我可以将其标记为有效。