【问题标题】:How to get last inserted id with insert method in laravel如何在 laravel 中使用 insert 方法获取最后插入的 id
【发布时间】: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);

                }
            }

【问题讨论】:

标签: mysql laravel


【解决方案1】:

你应该可以这样称呼它

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

【讨论】:

  • 返回错误 = 在布尔值上调用成员函数 lastInsertId()
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2016-08-15
    • 2016-10-24
    • 2016-06-01
    • 2021-10-22
    • 2017-08-06
    • 2014-01-31
    • 2019-05-27
    • 1970-01-01
    相关资源
    最近更新 更多