最近我创建了一个简单的注册表单,当我尝试保存数据时,如果我输入现有的用户名或电子邮件,我会收到一条错误消息,指出查询已停止,因为该字段已存在
在某些情况下,这是一个很棒的功能,我可以在电子邮件案例中使用它。
我不确定我是否必须在表单验证器或 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'
....
就像我说的那样,我可以将此错误用于电子邮件,因为我想要唯一的电子邮件,但我不确定如何捕获此错误并以更好的格式显示它,可能就像一个验证错误。
关于这个问题的任何想法?
谢谢