在一个Fieldset
我有一个Element\Radio
foo
和Element\Text
bar
。
public function init()
{
$this->add(
[
'type' => 'radio',
'name' => 'foo',
'options' => [
'label' => _('foo'),
'value_options' => [
[
'value' => 'a',
'label' => 'a',
'selected' => true
],
[
'value' => 'b',
'label' => 'b'
]
]
]
...
]);
$this->add(
[
'name' => 'bar',
'type' => 'text',
'options' => [
'label' => 'bar',
...
],
...
]);
}
字段的验证bar
取决于所选foo
选项。如果我能得到选定的值,这很容易实现foo
:
public function getInputFilterSpecification()
{
return [
'bar' => [
'required' => $this->get('foo')->getCheckedValue() === 'a',
...
],
];
}
但是没有办法Radio#getCheckedValue()
。好吧,我可以遍历 $this->get('foo')->getOptions()['value_options']
,但这真的是唯一的方法吗?
如何获得(在Fieldset#getInputFilterSpecification()
)中的选定选项Zend\Form\Element\Radio
?