如何通过laravel中的save()方法获取最后插入的id

时间:2017-03-15 10:17:50

标签: php laravel

我知道我可以使用insertGetId()获取最后一个ID但我想知道如何通过save()方法获取最后一个插入的ID。

order = new Store_order;
    $order->invoice_id = $signed['invoice_id'];
    $invoice = $order->save()['so_id'];

我使用了它,但它返回null

6 个答案:

答案 0 :(得分:4)

$order->save()之后,$order->so_id应该是插入的最后一个ID。您的代码应如下所示。

$order = new Store_order;
$order->invoice_id = $signed['invoice_id'];
$order->save();
$invoice = $order->so_id;

答案 1 :(得分:3)

你可以通过以下方式获得它:

$order = new Store_order;
$order->invoice_id = $signed['invoice_id'];
$invoice = $order->save();
echo $invoice->so_id;

在这种情况下,您不需要存储在一个变量中然后访问它,您可以通过调用模型对象本身来获取插入的记录:

    $order = new Store_order;
    $order->invoice_id = $signed['invoice_id'];
    $order->save();
    // echo $order; => will return entire stored last record.
    echo $order->so_id;

确保so_id是自动增量。

答案 2 :(得分:0)

在对我有用的地方尝试一下$ mode-> save();只是返回true。

$mylastid = DB::getPdo()->lastInsertId();

答案 3 :(得分:0)

如果您确实要覆盖模型中的主键名称,则如下所示:

protected $primaryKey = 'your_table_id_name';

使用:

$id = $your_variable_save->your_table_id_name

如果不是:

$id = $your_variable_save->id

答案 4 :(得分:-1)

$ObjTable->nane = $name;
$ObjTable->save();
echo $ObjTable->id;

这将显示最后插入的ID。

答案 5 :(得分:-1)

您可以按照给定的示例解决问题。

****对于Laravel ****

$order = new Store_order();

$order->invoice_id = $signed['invoice_id'];

$order->save();

//Getting Last inserted id

$insertedId = $order->so_id;

**只要 $ order-> so_id 表示获取store_order表主键 so_id 值。