第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何處理電子郵件錯誤的重復(fù)條目?

如何處理電子郵件錯誤的重復(fù)條目?

PHP
HUX布斯 2021-11-05 13:00:55
我有一個表單,管理員可以在其中添加用戶。當(dāng)我使用數(shù)據(jù)庫中存在的一些電子郵件提交表單時,我收到錯誤消息SQLSTATE[23000]:違反完整性約束:1062 鍵“users_email_unique”的重復(fù)條目“mail@mail.com”我想避免這個錯誤,而是得到例如警告“郵件被占用”或類似的東西。任何幫助表示贊賞。這是我的代碼。用戶控制器.phppublic function store(StoreUserInfo $data){    $data->validated();    $user = User::create([        'first_name' => $data['first_name'],        'last_name' => $data['last_name'],        'email' => $data['email'],        'password' => Hash::make($data['password']),        'city' => $data['city']    ]);     return redirect()        ->route('admin.users')        ->with('message', 'User created successfully');}商店用戶信息.phppublic function rules(){    $emailid = (Auth::user()->roles()->first()->name == 'admin')        ? (isset($this->user->id)?$this->user->id:Auth::user()->id) : Auth::user()->id;    return [        'first_name' => ['required', 'string', 'max:255'],        'last_name' => ['required', 'string', 'max:255'],        'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email,' . $emailid],        'city' => ['required', 'exists:cities,city']    ];}
查看完整描述

3 回答

?
弒天下

TA貢獻1818條經(jīng)驗 獲得超8個贊

你可以這樣檢查。


public function store(StoreUserInfo $data)

{

    $data->validated();


  $email = User::where('email',$data['email'])->first();

 if($email){

    return redirect()

    ->route('admin.users')

    ->with('message', 'Email is already exists.');

 }


$user = User::create([

    'first_name' => $data['first_name'],

    'last_name' => $data['last_name'],

    'email' => $data['email'],

    'password' => Hash::make($data['password']),

    'city' => $data['city']

]);


 return redirect()

    ->route('admin.users')

    ->with('message', 'User created successfully');

}


查看完整回答
反對 回復(fù) 2021-11-05
?
神不在的星期二

TA貢獻1963條經(jīng)驗 獲得超6個贊

您可以使用規(guī)則https://laravel.com/docs/5.8/validation#rule-unique創(chuàng)建驗證器


$messages = [

    'email.unique' = 'Email taken',

];


Validator::make($email, [

    'email' => [

        'required',

        Rule::unique('users')->where(function ($query) use($email) {

            return $query->where('email', $email);

        }),

    ],

],

$messages

);

這將幫助您管理所有驗證,而不僅僅是一個。如果您添加其他驗證,您將向用戶返回所有錯誤,而不僅僅是電子郵件錯誤。


查看完整回答
反對 回復(fù) 2021-11-05
?
吃雞游戲

TA貢獻1829條經(jīng)驗 獲得超7個贊

這可以通過幾種不同的方式處理,但為了可讀性和將查詢數(shù)量保持在最低限度,我將更create()改為 afirstOrCreate()并使用內(nèi)置的 laravelwasRecentlyCreated來查看用戶是否是新用戶。


 $user = User::firstOrCreate([

        'email' => $data['email'],

    ], [

        'password' => Hash::make($data['password']),

        'city' => $data['city']

        'first_name' => $data['first_name'],

        'last_name' => $data['last_name'],

]);

由于您可以將兩個數(shù)組傳遞給firstOrCreate,它將返回與電子郵件匹配的第一條記錄,或者使用您傳遞給它的屬性創(chuàng)建一個新記錄。然后,您可以使用wasRecentlyCreated它來檢查它是新記錄還是已經(jīng)存在。


if($user->wasRecentlyCreated){

    return whatever you need if it is a new user 

}

else{

   return user was already in the database

}


查看完整回答
反對 回復(fù) 2021-11-05
  • 3 回答
  • 0 關(guān)注
  • 242 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號