Symfony:数组for choice_attr不显示单选按钮

时间:2016-09-10 04:15:22

标签: forms symfony

我一直在尝试将HTML属性添加到我的单选按钮,但不知怎的,它不起作用。我使用内置的choice_attr选项。在这种情况下,我不想使用可调用的,因为choice_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']
        ])
    )

1 个答案:

答案 0 :(得分:2)

choice_attr用于 HTML属性 bluppfisk。 请参阅文档:

http://symfony.com/doc/current/reference/forms/types/choice.html#choice-attr

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];
}