Zend framework 如何在Zend Framework1.11中将子窗体数组合并到单个数组中
我正在使用Zend Framework1.11。在我的Zend表单中有两个子表单,我使用addSubForm函数添加了这两个子表单 现在,当我在控制器中调用这个zend表单时,isValid函数不起作用。我这样称呼它Zend framework 如何在Zend Framework1.11中将子窗体数组合并到单个数组中,zend-framework,zend-form,Zend Framework,Zend Form,我正在使用Zend Framework1.11。在我的Zend表单中有两个子表单,我使用addSubForm函数添加了这两个子表单 现在,当我在控制器中调用这个zend表单时,isValid函数不起作用。我这样称呼它 public function registeredAction(){ $form = new Application_Form_RegisteredForm(); $form->setAction('registered'); $formData =
public function registeredAction(){
$form = new Application_Form_RegisteredForm();
$form->setAction('registered');
$formData = $this->_request->getPost();
if($form->isValid($formData)){
// save into database using model class.
} else {
$form->populate($formData);
}
$this->view->form = $form;
}
在以下代码中,isValid不起作用,当我打印$fotmData请求的数组时,它会像这样打印数组:-
Array(
[personal] => Array
(
[firstname] => 'Example',
[lastname] => 'Solution'
)
[MAX_FILE_SIZE] => 8388608
[address] => Array
(
[country] => 'IND',
[state] => 'RAJ'
)
);
我也使用过setData()函数,但它不起作用,它出现异常错误“Message:Method setData不存在”,我使用过php array\u merge函数,但返回数组不能与isValid()一起工作
谁能帮我解决这个问题。因此,我可以轻松地将表单数据存储到数据库中
谢谢 看看array\u merge
我的解决方案是使用新方法getSubFormsValues()创建新的基本表单,即:
$newFormData=array_merge($formData["personal"],$formData["address"]);
class My_Form extends Zend_Form
{
public function getSubFormsValues()
{
$values = array();
foreach ($this->getSubForms() as $form) {
$name = $form->getName();
$value = $form->getValues();
$values = array_merge($value[$name], $values);
}
return $values;
}
}
When you can call $my_form_obj->getSubFormValues() in your code.