2017-02-28 18 views
0

私のlaravelプロジェクトでは、modelname :: insertメソッドを使って複数のレコードを挿入しています。今は最後に挿入したidを取得したいと思います.1つの挿入メソッドで複数のレコードを挿入し、last_record_idを取得しようとすると、最後に挿入されたクエリの束の最初のIDが返されます。しかし、私の最初の質問は、次のコードで最後のレコードIDを取得する方法です。私は束の最初のIDを取得することができます。私はインクリメンタル変数を使用して自分自身で他のレコードの他のIDを作成します。あなたは私が右の表示された場合、あなたはモデルを使用しているこのlaravelのinsertメソッドで最後に挿入されたIDを取得する方法

$lastId = Contract::insert($contract_arr)->lastInsertId(); 
+0

[laravelで取得するにはどのように最後に挿入されたIDS](の可能性のある重複http://stackoverflow.com/questions/35521277/how-to-get-last-inserted-ids-in- laravel) – WesselV

答えて

0

を挿入する

コード。直接挿入はsuccessブール値のみを表示します。代わりにこれを試してみてください:

Contract::create($contract_arr)->getKey() 
+0

エラーを返す=メンバー関数を呼び出すlastInsertId()on boolean –

0

のようにそれを呼び出すことができる必要があり、複数のレコード

if(!empty($req->contract_name) && count($req->contract_name)>0) 
      { 

       for($i=0; $i<count($req->contract_name); $i++) 
       { 
        $contract_arr[$i]['client_id'] = $this->id; 
        $contract_arr[$i]['contract_name'] = $req->contract_name[$i]; 
        $contract_arr[$i]['contract_code'] = $req->contract_code[$i]; 
        $contract_arr[$i]['contract_type'] = $req->contract_type[$i]; 
        $contract_arr[$i]['contract_ext_period'] = $req->contract_ext_period[$i]; 
        $contract_arr[$i]['contract_email'] = $req->contract_email[$i]; 
        $contract_arr[$i]['created_at'] = \Carbon\Carbon::now(); 
        $contract_arr[$i]['updated_at'] = \Carbon\Carbon::now(); 
        $contract_arr[$i]['created_by'] = Auth::user()->id; 
        $contract_arr[$i]['updated_by'] = Auth::user()->id; 
        if($req->startdate[$i] != ''){ 
         $contract_arr[$i]['startdate'] = date('Y-m-d',strtotime($req->startdate[$i])); 
        } 
        if($req->enddate[$i] != ''){ 
         $contract_arr[$i]['enddate'] = date('Y-m-d',strtotime($req->enddate[$i])); 
        } 
       } 
       if(!empty($contract_arr)){ 

        Contract::insert($contract_arr); 

       } 
      } 
関連する問題