Symfony2输入无线电表

时间:2015-03-19 11:00:17

标签: php symfony

我有一个尊重的表单模板,我找不到用Symfony创建它的最佳方法。

最终的表单渲染器应该是这样的(输入无线电):

--------------------------------------
|   ○   |   Description 1   |   0 $  |
------------------------------------- 
|   ○   |   Description 2   |   10 $ |
--------------------------------------
|   ○   |   Description 3   |   50 $ |
--------------------------------------
|   ○   |   Description n   |   ...  |
--------------------------------------

所以我创建了一个带有选择字段的FormType类,但只有一个标签是可能的。

我试过这个:

$builder
    ->add('quantity', 'choice', array(
        'choices' => array(
            50   => array('desc' => 'Description 1', 'price' => 0),
            100  => array('desc' => 'Description 2', 'price' => 10),
            150  => array('desc' => 'Description 3', 'price' => 50),
            200  => array('desc' => 'Description 4', 'price' => 100),
        )
    )
;

但它不起作用,Symfony按行创建两个输入......

我也尝试使用ChoiceList,但我发现错误"数组到字符串转换错误" ...

您知道构建这个简单表单界面的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

Choice field docs所述,使用choices字段显示无线电字段,您需要将字段更改为(因为它只接受单维数组):

$builder
->add('quantity', 'choice', array(
    'expanded' => true,
    'multiple' => false,
    'choices'  => array(
        50   => 'what you want string',
        100  => 'what you want string',
        150  => 'what you want string',
        200  => 'what you want string',
    )
)

要获得更高级的需求,您需要使用choice_list选项并相应地使用ChoiceListInterfaceBuild a Custom Field