2

I know to get the last id I can use insertGetId() but I want to know how can I get the last inserted id through save() method.

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

I used this but it returns null value

Alen
  • 1,221
  • 5
  • 21
  • 43

6 Answers6

10

After $order->save(), $order->so_id should be the last id inserted. Your code should be as below.

$order = new Store_order;
$order->invoice_id = $signed['invoice_id'];
$order->save();
$invoice = $order->so_id;
TIGER
  • 2,864
  • 5
  • 35
  • 45
4

You can get it by like below :

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

in this case you no need to store in one variable and then access it, You can get the inserted records by calling the model object itself :

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

Make sure so_id is autoincrement.

Muthu17
  • 1,481
  • 12
  • 20
0

You can get the last inserted id by the following codes.

Using Laravel Eloquent

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

$lastInsertedId = $order->so_id;     //now getting Last inserted id
echo $lastInsertedId; 

Provided that $order->so_id means last inserted id of the given object where so_id is the primary key of the table.

Majbah Habib
  • 8,058
  • 3
  • 36
  • 38
0

Try this once it worked for me where $mode->save(); was only returning true.

$mylastid = DB::getPdo()->lastInsertId();
Rashi Goyal
  • 933
  • 9
  • 15
0

In case of you did overwride the name of primary key in the model as in next case:

protected $primaryKey = 'your_table_id_name';

use:

$id = $your_variable_save->your_table_id_name

if not:

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

this will be display last inserted id.