我正在使用一系列嵌入了子表单的表单,如果我可以让getValues返回没有子表单上的数组表示法的值,我正在努力解决。
即:
$form = new Zend_Form();
$subForm = new Zend_Form_SubForm();
$form->addSubForm( $subForm, 'contact' );
$form->addElement(new Zend_Form_Element_Text('name'));
$subForm->addElement( new Zend_Form_Element_Text('phone') );
var_dump($form->getValues());
给我输出:
array(2) {
["name"]=>
NULL
["contact"]=>
array(1) {
["phone"]=>
NULL
}
}
但我真的希望输出为:
array(2) {
["name"]=>
NULL
["phone"]=>
NULL
}
在不重写Zend_Form函数的情况下执行此操作的任何简单方法都可以吗?
答案 0 :(得分:3)
您可以使用以下方式完成此操作:
$subform->setIsArray(false);
答案 1 :(得分:1)
这样的事情可能是一个开始:
$data = array();
foreach ($form->getSubForms() as $subform) {
$data += $subform->getValues();
}