2013-03-06 74 views
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字段和过滤器,并且我只保留了模型中的三个字段(名称,生日和性别),则一切正常,并且表单验证工作正常。但是当我描述模型中'用户'表的所有其他字段时,它不会。希望我解释得很好。有任何想法吗?

回答