如何在ZF2表单中为单选按钮集的容器设置类?

时间:2016-11-01 12:36:57

标签: php forms zend-framework2 zend-form zend-form-element

在我的表单中,我设置了一个单选按钮foo,其定义如下:

$this->add(
    [
        'type' => 'radio',
        'name' => 'foo',
        'options' => [
            'label' => 'foo',
            'value_options' => [
                [
                    'value' => Foo::BAR,
                    'label' => 'bar'
                ],
                [
                    'value' => Foo::BUZ,
                    'label' => 'buz'
                ]
            ],
            'label_attributes' => [
                'class' => 'col-md-12',
            ]
        ],
        'attributes' => [
            'class' => 'field-foo'
        ]
    ]);

在视图脚本中,它的调用方式如下:

$this->formRow($myFieldset->get('foo'));

所以我得到这个HTML:

<fieldset>
    <legend>foo</legend>
    <label class="col-md-12">
        <input type="radio" value="bar" class="field-foo" name="my_fieldset[foo]">bar
    </label>
    <label class="col-md-12">
        <input type="radio" value="buz" class="field-foo" name="my_fieldset[foo]">buz
    </label>
</fieldset>

现在我想根据需要设置此单选按钮。对于input[type="text"]字段,我通过label

进行管理
label.required:before {
    content: '* ';
    color: #ff0000;
}

在这种情况下,我需要访问legend或至少fieldset,以便定义

fieldset > legend.required:before, /*or*/
fieldset.required > legend:before {
    content: '* ';
    color: #ff0000;
}

怎么做?如何设置Zend Framework 2中设置的单选按钮的fieldset / legend元素的类?

1 个答案:

答案 0 :(得分:1)

我不认为您可以通过选项来做到这一点。但您可以使用partials来模拟输入:

root@do:/tmp# ls dir{A,B}/*.type
dirA/test.type  dirB/test.type

在此文件中,您可以自定义输入的呈现方式,添加所需内容:

$this->formRow($myFieldset->get('foo'), null, null, 'path/to/partials/some-partial-file.phtml');

Zend将一个$ element变量传递给partials,该变量保存表单输入元素