aFieldset
には と が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
?