![](/img/trans.png)
[英]Zend Framework 2 - How to keep value in form fields ? on multiple record update?
[英]Zend Framework 2 InputFilter and form fields
問題如下:-我有一些表格,例如主要設置(僅包含姓名,性別和生日字段),我想通過此表格僅編輯數據庫中的這三個字段(並分別編輯其他字段,例如密碼和該網站其他頁面中其他形式的電子郵件)。 但是,它似乎不起作用:
$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));
}
$ form-> getMessages()返回一個空數組,而var_dump($ form-> isValid)返回布爾值false。 如果刪除所有其他MySQL字段和InputFilter中的過濾器,並且在模型中僅保留三個字段(名稱,生日和性別),則一切正常,並且表單驗證有效。 但是,當我在模型中描述“用戶”表的所有其他字段時,事實並非如此。 希望我能很好地解釋。 有任何想法嗎?
當您只想保存部分數據時,可以使用“驗證組”來驗證某些字段:
http://framework.zend.com/manual/2.0/en/modules/zend.form.quick-start.html#validation-groups
例如:
$form->setValidationGroup('name', 'sex', 'birthday');
$form->setData($data);
if ($form->isValid()) {
// Contains only the "name", "sex", "birthday"
$data = $form->getData();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.