Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何更改集合表单字段类型中选择的值和标签?_Php_Symfony_Symfony Forms - Fatal编程技术网

Php 如何更改集合表单字段类型中选择的值和标签?

Php 如何更改集合表单字段类型中选择的值和标签?,php,symfony,symfony-forms,Php,Symfony,Symfony Forms,我的集合字段类型如下: $defaultData = array('attendances' => array('5', '4')); $form = $this->createFormBuilder($defaultData) ->add('choice', 'text') ->add('email', 'email') ->add('message', 'textarea') ->a

我的集合字段类型如下:

$defaultData = array('attendances' => array('5', '4'));
    $form = $this->createFormBuilder($defaultData)
        ->add('choice', 'text')

        ->add('email', 'email')
        ->add('message', 'textarea')
        ->add('attendances', 'collection', array(
            'type'  => 'choice',

            'options'  => array(

                'choices'   => array('1' => 'حاضر', '0' => 'غایب'),
            ),
        ))
        ->add('send', 'submit')
        ->getForm();
我得到的是:


查看选项的标签(0和1)以及它们的输入名称属性,我想更改的是标签和输入名称属性,那么如何更改$defaultData?

我建议,如果要创建一个选择,请直接使用
'choice'
类型:

->add('attendances', 'choice', array(
                    'choices' => array('1' => 'حاضر', '0' => 'غایب'),))
希望能有帮助

更新

可以使用预定义数组填充选项。也可以使用属性设置默认值

$defaultData = array('attendances' => array('5' => 'One option', '4' => 'Another option'));

...
->add('attendances', 'choice', array(
                        'choices' => $defaultData["attendances"],
                        'data' => '5',))// just in case you want a preselected choice, in this case, key 5 will appear selected by default.
...

好的,您可以使用
数据
属性作为数组来执行此操作,您可以阅读有关它的更多信息

代码示例:

结果:


还有标签
key
key2

谢谢你的回答,但是我已经告诉你了大约30个这种选择类型的项目。是否可以事先生成数组并将其传递到选项字段?你是指$defaultData数组吗?yes@mohsenkw您是否尝试将
$defaultdata
传递给
选项
?是的,请参见第二行我将其传递给createFormBuilder(),谢谢,它工作正常,但您知道如何为每个选项设置不同的标签和名称索引吗?
$defaultData = array('attendances' => 
   array('key' => '5', 'key2' => '4')
);
$form = $this->createFormBuilder($defaultData)
    ->add('choice', 'text')
    ->add('email', 'email')
    ->add('message', 'textarea')
    ->add('attendances', 'collection', array(
            'type'  => 'choice',

            'options'  => array(

                'choices'   => array('1' => 'حاضر', '0' => 'غایب'),
            ),
            'data' => $defaultData['attendances']
        ))
    ->add('send', 'submit')
    ->getForm();
name="form[attendances][key]"
name="form[attendances][key2]"