php - symfony2 自定义表单选择选项

标签 php symfony symfony-forms

我正在尝试做一个简单的表单来添加一个带有名称和颜色的事件。

所以我想制作一个包含一些颜色数组的列表,现在它正在工作我有颜色的名称。
我可以将任何属性添加到我的选择标签中:

$form = $this->createFormBuilder($myclass)
->add('Colors','choice',array('label'=>'select some colors',
            'multiple'=>true,
            'choices'=>array(1=>'red', 2=>'blue', 3=>'green'),
            'attr'=>array('style'=>'width:300px', 'customattr'=>'customdata')
            ));

输出将是这样的:

<select name="select" style="width: 300px;" multiple="multiple" customattr="customdata">
   <option value="1">red</option>
   <option value="2">blue</option>
   <option value="3">green</option>
</select> 

但是我怎样才能将 selected="selected" 和我想要的任何属性添加到我的选择选项中?像这样:

<select name="select" style="width: 300px;" multiple="multiple" customattr="customdata">
   <option style="background-color: #F00;" value="1" selected="selected">red</option>
   <option style="background-color: #00F;" value="2" selected="selected">blue</option>
   <option style="background-color: #0F0;" value="3">green</option>
</select> 

我的问题是:如何通过 symfony FormBuilder 为 option 标签(不是为 select 标签)添加自定义属性。
注意:我不想使用 JavaScript。我想使用 symfony2 FormBuilder 来自定义我的选择选项。

最佳答案

通常,字段的默认数据由对象中存储的值决定。例如,如果

class MyClass
{
    private $Colors = array(1, 2);
}

然后条目“1”和“2”(标签为“红色”和“绿色”)将默认显示为选中状态。您还可以在将此值传递给表单之前将其存储在对象中:

$myObject->Colors = array(1, 2);

$form = $this->createFormBuilder($myObject)
    ...

最后一种可能性是通过传递“数据”选项来覆盖存储在对象中的默认值:

$builder->add('Colors', 'choice', array(
    'label' => 'select some colors',
    'multiple' => true,
    'choices' => array(1 => 'red', 2 => 'blue', 3 => 'green'),
    'attr' => array('style' => 'width:300px', 'customattr' => 'customdata'),
    'data' => array(1, 2),
));

关于php - symfony2 自定义表单选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12217431/

相关文章:

ajax - Symfony2 : How to get a current route in Ajax controller?

symfony - 如何在 Symfony2 twig 模板的 "delete"按钮中添加 css 类?

php - 通过 PHP 处理 Paypal 付款

php - 应用程序访问服务器负载

javascript - 如何在具有文件 jquery.dataTables.js 的 jquery 插件中对同一列中的日期和字符串进行排序?

forms - Symfony2 : 1 form to edit a translatable entity

php - 在普通类(class)内访问服务

php - 如何在 Symfony 表单中创建作为 SubmitType 子级的自定义 SaveType

symfony - 针对自定义表单类型使用 sonata_type_collection 而不是与另一个实体的属性/关系

php - 下拉列表框中的复选框内的复选框