亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創建一個沒有屬性的空 Laravel 模型實例,但仍然獲取 id

創建一個沒有屬性的空 Laravel 模型實例,但仍然獲取 id

PHP
動漫人物 2023-06-24 15:46:20
基本上,我正在創建一個 Article 實例:$article = new Article();//Returns null$id = $article->id();然而,這會返回一個空對象。我想做的是創建一篇文章并在執行之前獲取其 id:$article->save();嘗試創建文章不起作用,因為它需要提供值或具有默認值:$article = Article::create();我正在考慮的方法是:$latest_id = Article::latest()->first()->id;但我不確定這是否正確,或者是否有更好的方法。
查看完整描述

3 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

這是數據庫中列的id值,因為你還沒有保存,數據庫中什么也沒有(你無法獲取它)。id


我想您需要執行一些可能在某些時候失敗或被取消的任務,對于這種情況,有一個解決方法,例如:


DB::beginTransaction();


try {

    $article = new Article();

    $article->fields = 'example';

    $article->save();


    // Anything needing ID here...


    DB::commit();

} catch (\Exception $e) {

    DB::rollback();

    // Handle or re-throw:

    throw $e;

}


查看完整回答
反對 回復 2023-06-24
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

您無法獲取尚未保存的對象/模型的 ID。

在這種情況下,ID 不存在,您可以找到最新的 ID 并將該 ID 加一,但是您可能會在某些競爭條件下運行,當另一個向該表添加新元素的腳本速度更快時,然后您稍后保存的 ID 錯誤。

如果您需要 ID 來存儲該模型的引用,正確的方法是先保存模型,然后保存引用。

如果您需要 ID 來保存文件名中包含 ID 的文件,那么您在數據庫中保存為文本的內容可以先保存模型(以檢索 ID),然后再次保存包含缺失信息的模型。


查看完整回答
反對 回復 2023-06-24
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

初始化一個空模型來獲取它的 id 沒有幫助,因為 idid總是在運行時計算。請記住,系統可能n同時收到請求。

nullable如果您想創建一個空行來獲取保留,則需要創建這些字段id。

或者,如果您只需要存儲在數據庫表中的最后一個 id,則可以通過以下方式執行此操作,但這可能會導致數據中出現一些不匹配和不一致:

$latest_id = Article::latest()->first()->id;


查看完整回答
反對 回復 2023-06-24
  • 3 回答
  • 0 關注
  • 237 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號