Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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 在表单类中修改Symfony表单组件选项_Php_Symfony_Callback_Symfony Forms_Symfony 2.3 - Fatal编程技术网

Php 在表单类中修改Symfony表单组件选项

Php 在表单类中修改Symfony表单组件选项,php,symfony,callback,symfony-forms,symfony-2.3,Php,Symfony,Callback,Symfony Forms,Symfony 2.3,我想知道在SF2表单类中修改下拉框内容的正确/标准方法 我希望键与下面的标记显示的数组相同 这应该在回调中完成,而不是像我这样调用$builder->add的预游标吗 /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) {

我想知道在SF2表单类中修改下拉框内容的正确/标准方法

我希望键与下面的标记显示的数组相同

这应该在回调中完成,而不是像我这样调用
$builder->add
的预游标吗

/**
 * @param FormBuilderInterface $builder
 * @param array                $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    foreach ($options['importDirectories'] as $key => $value) {
        $formattedImportDirectories[$options['importDirectories'][$key]] = $value;
    }

    $builder
        ->add('importDirectory', 'choice', [
            'label'   => 'Import Directory',
            'choices' => $formattedImportDirectories
        ]);
}
这会产生这样的下拉列表

<select class="form-control" name="import_directory_type[importDirectory]" id="import_directory_type_importDirectory">
    <option value="14-products">14-products</option>
    <option value="14-course">14-course</option>
    <option value="14-accessories">14-accessories</option>
</select>

14种产品
14道菜
14附件

答案非常简单,不需要回调:

'choices' => array_combine($options['importDirectories'], $options['importDirectories']);