【发布时间】:2017-02-28 09:21:39
【问题描述】:
在我的 laravel 项目中,我使用 modelname::insert 方法一次插入多条记录。现在我想获取它的最后插入的 id。当您使用单个插入方法插入多条记录并尝试获取 last_record_id 时,我在某处读到它会给您最后插入的查询束的第一个 id。但我的第一个问题是如何使用以下代码获取最后一条记录 id。如果我能够获得这组中的第一个 id。我将使用增量变量自己为其他记录制作其他 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);
}
}
【问题讨论】: