2017-09-16 21 views
0

データがすでに存在するかどうかをチェックしています。データがすでに存在する場合は更新機能を使用し、そうでない場合は新しいレコードを挿入します。 その新しいレコードを挿入するが、私は将来的に重複する行にしたくない、レコードがすでに存在するかどうかを確認し、laravelに更新または挿入する方法?

public function store(Request $request) 
 
    { 
 
     $requestData = $request->all(); 
 
     
 
      $jobseeker = new Jobseeker(); 
 
      $jobseeker->fullname= $requestData['full name']; 
 
      $jobseeker->gender= $requestData['Gender']; 
 
      $jobseeker->messenger_user_id= $request->{'messenger user id'}; 
 
      $jobseeker->save(); 
 

 

 
    }
だからここに私が試した方法ですが、私はチェックメッセンジャーのユーザーIDがすでに存在しているか、いないときに作業しますメッセンジャーのユーザーIDがすでに存在する場合は、既存の行を更新する必要があります。そうでない場合は、新しい行を挿入します。

public function store(Request $request,$messenger_user_id) 
 
    { 
 
     $requestData = $request->all(); 
 

 
     $my_msg_id = Jobseeker::where('messenger_user_id',$requestData['messenger user id'])->first(); 
 
     
 
     if (is_null($my_msg_id)) { 
 
      $jobseekers = Jobseeker::find($messenger_user_id); 
 
      $jobseeker->fullname= $requestData['full name']; 
 
      $jobseeker->gender= $requestData['Gender']; 
 
      $jobseeker->messenger_user_id= $request->{'messenger user id'}; 
 
     } 
 
     else{ 
 
      $jobseeker = new Jobseeker(); 
 
      $jobseeker->fullname= $requestData['full name']; 
 
      $jobseeker->gender= $requestData['Gender']; 
 
      $jobseeker->messenger_user_id= $request->{'messenger user id'}; 
 
      $jobseeker->save(); 
 
     } 
 

 
    }

誰かが、高度でのおかげで、私を導くことができます。

+1

あなたはlaravelのfirstOrCreate/firstOrNewメソッドを聞いたことがありますか?ここのドキュメントをご覧くださいhttps://laravel.com/docs/5.5/eloquent#inserts –

+0

こんにちは、私は前に聞いた、なぜですか? –

+0

それでは、あなたの問題にそれらのメソッドを使うのが良いです。 –

答えて

3

laravelでこれをすべて行う必要はありません。メソッドfirstOrCreateを使用します。

$data_array = [ 
    'full_name' => $requestData['full name'], 
    'gender' => $requestData['Gender'], 
]; 

$jobseeker = App\Jobseeker::firstOrCreate(['messenger_user_id' => $messenger_user_id], $data_array); 

それはその配列内の指定されたキー値を持つレコードを更新するために、2番目のパラメータとしてモデルや配列を見つけるために、最初のパラメータとして配列を取るか、それが与えられたデータ、その後、戻って新しいレコードを作成しますモデルオブジェクト

+0

私のために働く、ありがとう –

関連する問題