3 回答
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
這是數(shù)據(jù)庫(kù)中列的id值,因?yàn)槟氵€沒(méi)有保存,數(shù)據(jù)庫(kù)中什么也沒(méi)有(你無(wú)法獲取它)。id
我想您需要執(zhí)行一些可能在某些時(shí)候失敗或被取消的任務(wù),對(duì)于這種情況,有一個(gè)解決方法,例如:
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;
}
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
您無(wú)法獲取尚未保存的對(duì)象/模型的 ID。
在這種情況下,ID 不存在,您可以找到最新的 ID 并將該 ID 加一,但是您可能會(huì)在某些競(jìng)爭(zhēng)條件下運(yùn)行,當(dāng)另一個(gè)向該表添加新元素的腳本速度更快時(shí),然后您稍后保存的 ID 錯(cuò)誤。
如果您需要 ID 來(lái)存儲(chǔ)該模型的引用,正確的方法是先保存模型,然后保存引用。
如果您需要 ID 來(lái)保存文件名中包含 ID 的文件,那么您在數(shù)據(jù)庫(kù)中保存為文本的內(nèi)容可以先保存模型(以檢索 ID),然后再次保存包含缺失信息的模型。
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
初始化一個(gè)空模型來(lái)獲取它的 id 沒(méi)有幫助,因?yàn)?idid總是在運(yùn)行時(shí)計(jì)算。請(qǐng)記住,系統(tǒng)可能n同時(shí)收到請(qǐng)求。
nullable如果您想創(chuàng)建一個(gè)空行來(lái)獲取保留,則需要?jiǎng)?chuàng)建這些字段id。
或者,如果您只需要存儲(chǔ)在數(shù)據(jù)庫(kù)表中的最后一個(gè) id,則可以通過(guò)以下方式執(zhí)行此操作,但這可能會(huì)導(dǎo)致數(shù)據(jù)中出現(xiàn)一些不匹配和不一致:
$latest_id = Article::latest()->first()->id;
- 3 回答
- 0 關(guān)注
- 270 瀏覽
添加回答
舉報(bào)
