0
- 我有一个包含用户名,姓名,电子邮件,密码,性别,生日,头像等诸多字段的'用户'表。我已经在用户模型中描述了所有这些我的ZF2应用程序使用InputFilter。
的问题如下: - 我有一些格式,如:主要设置(在只有姓名,性别和生日字段),我想通过这种形式,只修改数据库中的这三个字段(并分别编辑其他字段,如密码和电子邮件等网站的其他页面中的其他形式)。然而,这似乎并没有工作:Zend Framework 2 InputFilter和表单域
$request = $this->getRequest();
if ($request->isPost()) {
$users = new Users();
$form->setInputFilter($users->getInputFilter());
$form->setData($request->getPost());
if ($form->isValid()) {
$users->exchangeArray($form->getData());
$this->getUsersTable()->editUser($users, $userInfo->user_id);
$message = 'Профилът ви беше успешно променен!';
}
}
这里是我只想更新领域姓名,生日,性别形式。
这里是模型:
public function editUser(Users $user, $userID) {
$data = array(
'name' => $user->name,
'birthday' => $user->birthday,
'sex' => $user->sex,
);
$this->tableGateway->update($data, array('user_id' => $userID));
}
$形式 - >的getMessages()返回一个空数组的var_dump($形式 - >的isValid)返回布尔值false。如果我删除了InputFilter中的所有其他MySQL字段和过滤器,并且我只保留了模型中的三个字段(名称,生日和性别),则一切正常,并且表单验证工作正常。但是当我描述模型中'用户'表的所有其他字段时,它不会。希望我解释得很好。有任何想法吗?
谢谢,伙计!你刚刚救了我的屁股! – 2013-03-06 12:38:43