2017-02-28 57 views
0

在我的laravel项目中,我使用modelname :: insert方法插入多个记录。现在我想要得到最后插入的id。我在用单个插入方法插入多个记录并尝试获取last_record_id时会读取某处,它会为您提供最后插入的查询串的第一个ID。但我的第一个问题是如何使用下面的代码获取最后一个记录ID。如果我能够获得第一个id,我将使用增量变量为其他记录创建其他记录。如何在laravel中使用插入方法获取最后一个插入的ID

代码中插入多个记录

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); 

       } 
      } 
+0

【如何获得laravel最后插入的IDS(的可能的复制http://stackoverflow.com/questions/35521277/how-to-get-last-inserted-ids-in- laravel) – WesselV

回答

0

你应该能够这样称呼它

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

return an error =调用成员函数lastInsertId()on boolean –

0

如果我看到合适的,您使用的模型。直接插入仅显示成功布尔值。试试这个:

Contract::create($contract_arr)->getKey() 
相关问题