当已经存在具有相同电子邮件id的用户时,我希望得到一个JSON响应。
public function register(Request $request)
{
$user = new User();
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->password = Hash::make($request->input('password'));
if($user->save()){
if (Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')])) {
return response(['result' => true, 'user' => Auth::user()]);
}
}
return response(['result' => false, 'user' => new User()]);
}在这个时候我没有得到错误的结果。我得到了如下的回应
Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'pkxxx@gmail.com' for key 'users_email_unique' (SQL: insert into `users` (`name`, `email`, `password`, `updated_at`, `created_at`) values (Pramod, pkxxx@gmail.com, $2y$10$mB7NKRp/uyfkjHhmS3y05OdrvR.2/nGeeiuJj9JrILLGHoXUUt3ce, 2021-12-09 08:40:30, 2021-12-09 08:40:30))请告诉我怎样才能得到这样的回复:“用户已经用相同的电子邮件id注册了。”
发布于 2021-12-09 09:43:55
您应该使用laravel身份验证,而不是创建自己的系统。
laravel在其认证脚手架套件中已经有LoginContoller / RegisterController等。
发布于 2021-12-10 03:12:15
我认为你应该先判断电子邮件是否存在,然后再做下一步。
https://stackoverflow.com/questions/70287431
复制相似问题