如何在laravel

时间:2017-02-28 09:21:39

标签: mysql laravel

在我的laravel项目中,我使用modelname :: insert方法插入多个记录。现在我想得到它的最后一个插入ID。当你使用单个insert方法插入多个记录并尝试获取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);

                }
            }

2 个答案:

答案 0 :(得分:0)

你应该可以这样称呼它

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

答案 1 :(得分:0)

如果我看对了,你就是在使用模特。直接插入仅显示成功布尔值。试试这个:

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