這是我的 API 注冊方法,用于將新用戶注冊到資料庫中。
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()){
response (['result' => true]);
}
return response(['result' => false,]);
}
現在,當我使用同一個電子郵件 ID 注冊時,出現如下錯誤
Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '[email protected]' for key 'users_email_unique' (SQL: insert into `users` (`name`, `email`, `password`, `updated_at`, `created_at`) values (Pramod, [email protected], y$WJJrNjB8K/jGSXpPagVjSujZcifKXrzs3gnvPcjSK3W1c.IekaBna, 2021-12-16 07:46:56, 2021-12-16 07:46:56))
我想在重復的電子郵件注冊中得到錯誤的結果回應
uj5u.com熱心網友回復:
您可以使用 Exists 添加驗證:示例: $user->where('email',$request->input('email'))->exists()
請參閱以下代碼:
public function register(Request $request)
{
$user = new User();
if(!$user->where('email',$request->input('email'))->exists()){
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->password = Hash::make($request->input('password'));
if($user->save()){
return response(['result' => true]);
}else{
return response(['result' => false]);
}
}
return response(['result' => false,]);
}
uj5u.com熱心網友回復:
您可以使用 Laravel 驗證:
public function register(Request $request)
{
$validated = $request->validate([
'email' => 'required|unique:users',
]);
if($validation->fails()){
return response()->json($validation->errors());
}
$user = new User();
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->password = Hash::make($request->input('password'));
if($user->save()){
return response (['result' => true]);
}
return response(['result' => false,]);
}
uj5u.com熱心網友回復:
您可以使用表單請求。
https://laravel.com/docs/8.x/validation#form-request-validation
或者你可以使用以下
public function register(Request $request){
$data = $request->validate([
'email' => 'required|email|unique:users',
'name' => 'required|string',
'password' => 'required|string'
]);
$data['password'] = bcrypt($data['password']);
try {
User::create($data);
return response()->json([
'message' => __('User created'),
'result' => true
]);
}catch (\Exception $exception){
return response()->json([
'message' => $exception->getMessage(),
'result' => false
]);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/384629.html
上一篇:以角度保護laravelapi
下一篇:同時從父表和子表中過濾(搜索)
