我有一系列用于选择列表的选项。
$options = array( 1=>'Option1', 2=>... );
但如果我只有一个选择,我宁愿选择:
一个隐藏
<input type="hidden" name="opt" value="2"/>
的验证器,要求发布的值是2
没有输出。该值将仅存储在 form_element/form 中,直到由
$form->getValues()
这段代码是我想要的一个非工作示例:($this
是一个 Zend_Form 对象)
$first_val = reset(array_keys($options));
if( count($options) > 1 )
$this->addElement('select', 'opt', array(
'multiOptions' => $options,
'label' => 'Options',
'value' => $first_val,
'required' => true ));
else
$this->addElement('hidden', 'opt', array(
'required' => true,
'value' => $first_val ));
但是,该值不会验证为$first_val
。任何人都可以更改隐藏值,从而允许他们注入无效值。这是不可接受的。
帮助?