用Zend Form可以轻松生成表单,但是如果要做修改页面,比如修改个人信息,可以通过如下方式为每个元素赋值:
controller:
public function editAction() { $request = $this->getRequest(); $form = new User_Form_BidAdd(); if ($this->getRequest()->isPost() && $form->isValid($request->getPost())) { $_POST[‘user_id‘] = Zend_Auth::getInstance()->getStorage()->read()->id; $_POST[‘addtime‘] = time(); $cls = new Db_Model_Bid($_POST); $cls->save(); } $cls = new Db_Model_Bid(); $bid = $cls->find($request->bid); $form->populate($bid->toArray()); $this->view->form = $form; }
其中的$form->populate($bid->toArray());默认将数据库字段名称作为key,值作为value,给相应的form元素赋值,即可达到修改表单的效果,而不用自己一个一个去赋值。