【发布时间】:2013-08-02 04:56:36
【问题描述】:
这是我的表格:个人资料表格
它有两个元素password和passwordConf
$this->password= new Zend_Form_Element_Password("password",array("label"=>"Password","required"=>true));
$this->passwordConf= new Zend_Form_Element_Password("confpassword",array("label"=>"Retype","required"=>true));
$this->passwordConf->addValidator("Identical",array("token"=>"password"));
$this->save=new Zend_Form_Element_Submit("save",array("label"=>"Change Password","class"=>"btn btn-primary"));
所以我在控制器中有一个 this 的实例并将其传递 POST 数据
$profileForm= new Application_Form_Profile();
if($_POST)
if($profileForm->isValid($_POST))
{
$membersTable= new Application_Model_DbTable_Members();
$member=$membersTable->find($this->user->id)->current();
$member->password=sha1($profileForm->getValue("password").$member->salt);
$this->_helper->flashMessenger(array("type"=>"success","content"=>"Password Changed!"));
$this->_redirect("");
$member->save();
}
$this->view->profileForm=$profileForm;
}
但由于某种原因,我收到 Zend Empty 错误消息。我还注意到没有填充表单字段。 我检查了 Chrome 中的响应,看起来帖子数据很好地传递到了页面。甚至做了一个 print_r(POST) ,甚至所有数据看起来都很好。我在上面的代码块之前和之后都这样做了,但是没有用。尽管传递了数据,但它只是不会填充表单。
PS:错误信息仅针对密码确认字段。密码字段工作正常
【问题讨论】:
-
Zend_Form_Element_Password默认设置为不重新显示与安全相关的值。 -
没关系,但密码 conf 验证失败,即使我输入数据
-
哇,想通了。显然,变量 $this->passwordConf 的名称和字段的名称必须匹配
-
你真的应该在你的表单类中使用
addElement(),例如$this->addElement(new Zend_Form_Element_...) -
我已经习惯了这种语法。它更快,让我们直接使用 $form->elementname 而不是 $form->getElement("name") 访问表单元素
标签: php zend-framework