php - 为 Symfony 选择字段中的每个选项添加不同的 HTML 属性

标签 php symfony checkbox symfony-forms

我想制作一个 Symfony2 表单选择列表(复选框),但我希望每个选项都有不同的属性,例如:

<div class="field inline">
    <input type="checkbox" id="form_options_0" name="form[options][]" value="1">
    <label for="form_options_0" data="1">Option 1</label>
</div>
<div class="field inline">
    <input type="checkbox" id="form_options_1" name="form[options][]" value="2">
    <label for="form_options_1" data="2">Option 2</label>
</div>

我尝试查看 Symfony Form 文档,但看起来您只能将自定义属性添加到整个选择字段,而不是单个选项。
有谁知道这是否可以在不创建自定义字段类型或 View 的情况下实现?

最佳答案

在 Symfony 的最新版本中(我认为从 2.7 开始)有一个名为 choice_attr 的新选项做你需要做的事情

文档中的示例:

use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
// ...

$builder->add('attending', ChoiceType::class, array(
    'choices' => array(
        'Yes' => true,
        'No' => false,
        'Maybe' => null,
    ),
    'choice_attr' => function($val, $key, $index) {
        // adds a class like attending_yes, attending_no, data-*, etc
        return [
             'class' => 'attending_'.strtolower($key),
        ];
    },
));

关于php - 为 Symfony 选择字段中的每个选项添加不同的 HTML 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18875462/

相关文章:

PHP:Phing、Phar 和 phar.readonly

php - 根据浏览器在 Yii 中引用不同的 js 文件

symfony - 自定义规范器未通过名称转换器服务

linux - Vagrant、Symfony、chmod 许可证

php - 如何根据php中的条件复选框回显隐藏的表单字段?

android - 如何在动态 View 中只选择一个复选框

php - 使用 phpspec 在命令处理程序中测试工厂方法

php - 如何将链接显示为 md5 而不是普通链接

Symfony2 phpunit 功能测试自定义用户身份验证在重定向后失败( session 相关)

html - 在选中的复选框上切换样式