最近、簡単な登録フォームを作成しました。データを保存しようとすると、既存のユーザー名または電子メールを入力すると、フィールドが既に存在するためクエリが停止したというエラーが表示されます
場合によっては、これは優れた機能であり、電子メールのケースで使用できます。
これをフォームバリデーター、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'
....
私が言ったように、一意の電子メールが必要なので、このエラーを電子メールに使用できますが、このエラーをキャッチしてより適切な形式で表示する方法がわかりません。おそらく検証エラーのようです。
この問題に関するアイデアはありますか?
ありがとう