【发布时间】:2012-10-11 06:34:17
【问题描述】:
最近我创建了一个简单的注册表单,当我尝试保存数据时,如果我输入现有的用户名或电子邮件,我会收到一条错误消息,提示查询已停止,因为该字段已存在
在某些情况下,这是一个很棒的功能,我可以在电子邮件案例中使用它。
我不确定我是否必须在表单验证器、config.php 或我的模块中进行设置。
这是我的保存方法:
public function saveUser(User $user)
{
$data = array(
'username' => $user->username,
'email' => $user->email,
'password' => $user->password,
);
$id = (int) $user->user_id;
if ($id == 0) {
$this->insert($data);
} elseif ($this->getUser($id)) {
$this->update(
$data,
array(
'user_id' => $user_id,
)
);
} else {
throw new \Exception('Form id does not exist');
}
}
这是一个简短的错误:
Statement could not be executed
...
QLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'admin' for key 'username'
....
就像我说的,我可以将此错误用于电子邮件,因为我想要唯一的电子邮件,但我不知道如何捕获此错误并以更好的格式显示它,可能就像一个验证错误。
关于这个问题有什么想法吗?
谢谢
【问题讨论】:
标签: php forms validation duplicates zend-framework2