【问题标题】:How to get last inserted id through save() method in laravel如何通过 laravel 中的 save() 方法获取最后插入的 id
【发布时间】:2017-08-06 00:23:36
【问题描述】:

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

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

我使用了这个,但它返回 null

【问题讨论】:

  • 为什么不使用关系?
  • 我知道如何处理关系。我想知道save()方法!
  • 在所有情况下,当您保存时,它不会返回发票对象。你要找哪个身份证?订单编号?
  • so_id 是数据库结构中的 PRIMARY KEY 和 AUTO_INCREMENT。所以我想得到那个so_id
  • 这篇文章可能对你有所帮助:stackoverflow.com/questions/21084833/…

标签: php laravel


【解决方案1】:

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

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

【讨论】:

  • save() 函数返回 null
  • @MinaAbadir 如果 id 不是自动递增的,这将始终返回 0。
  • 请至少在 tinker 上测试您的代码。 save() 方法不返回任何内容。这里没有关于自动增量的内容。
  • 实际上save() 返回布尔值,无论是真还是假,我相信。如果已成功插入值,则save() 返回1,否则返回0
  • 它也可以在 Lumen 8.0 版本中使用。谢谢
【解决方案2】:

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

$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 是自动递增的。

【讨论】:

  • $order->id 工作
【解决方案3】:
$ObjTable->nane = $name;
$ObjTable->save();
echo $ObjTable->id;

这将显示最后插入的 id。

【讨论】:

    【解决方案4】:

    您可以通过以下代码获取最后插入的id

    使用 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; 
    

    假设 $order->so_id 表示给定对象的最后插入 id,其中 so_id 是表的主键。

    【讨论】:

      【解决方案5】:

      在 $mode->save(); 对我有用后试试这个只返回 true。

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

      【讨论】:

        【解决方案6】:

        如果您确实覆盖了模型中的主键名称,如下一种情况:

        protected $primaryKey = 'your_table_id_name';
        

        使用:

        $id = $your_variable_save->your_table_id_name
        

        如果没有:

        $id = $your_variable_save->id
        

        【讨论】:

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