Symfony2表单选择没有optgroup

时间:2014-10-09 07:59:59

标签: php symfony

我有一个数组,其中包含特定文件夹中的元素,如

$finder = new Finder();
$all_images = $finder->files()->in('images/questions');
$images = array();
foreach ($all_images as $image) {
     $images[$image->getRelativePathName()] = $image->getRelativePathName();
}

var_dump输出为:

 array (size=3)
      'image3.png' => string 'image3.png' (length=10)
      'image2.png' => string 'image2.png' (length=10)
      'image1.png' => string 'image1.png' (length=10)

我创建了一个"选择"我的形式中的元素如下:

->add('imageA', 'choice', array('choices' => array($images)

我在这样的树枝中渲染这个表单元素(css并不重要):

{{ form_widget(form.imageA, { 'attr': {'class': 'rounded' } }) }}

这会产生这个HTML代码:

<select id="create_question_type_imageA" name="create_question_type[imageA]" class="rounded">
    <option value=""></option>
    <optgroup label="0">
        <option value="image3.png">image3.png</option>
        <option value="image2.png">image2.png</option>
        <option value="image1.png">image1.png</option>
    </optgroup>
</select>

我需要这个没有optgroup的选择,我尝试扩展为false但不起作用......

TY!

1 个答案:

答案 0 :(得分:6)

由于$ images变量已经是一个数组,因此您无需再在表单类型中将其指定为数组。否则你的$ images将是一个数组数组,这就是为什么Symfony添加了optgroup。

而不是:

->add('imageA', 'choice', array('choices' => array($images)

尝试简单地设置:

->add('imageA', 'choice', array('choices' => $images)