1 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
好吧,我想出了一個(gè)解決方案。
默認(rèn)情況下,當(dāng)您將 eloquent 關(guān)系作為屬性訪問(wèn)時(shí),關(guān)系的數(shù)據(jù)是延遲加載的。這意味著默認(rèn)情況下不加載它。
我希望這表現(xiàn)得像一個(gè)常見(jiàn)的延遲加載,這意味著當(dāng)我訪問(wèn)屬性時(shí),它會(huì)自動(dòng)加載關(guān)系并讓我訪問(wèn)相關(guān)模型的屬性。情況似乎并非如此。
一旦我將以下行添加到我的“消息”雄辯模型中,我上面所做的一切都完美無(wú)缺:
protected $with = ['sender', 'recipient'];
模型的受保護(hù)“with”屬性告訴 eloquent 在查詢數(shù)據(jù)時(shí)應(yīng)該預(yù)先加載(而不是延遲加載)哪些關(guān)系。添加發(fā)件人和收件人后,我的所有相關(guān)數(shù)據(jù)都默認(rèn)加載 - 不再懶惰 - 但已加載。
在我看來(lái),這種行為可能是 Laravel 6.7.0 中的一個(gè)錯(cuò)誤,我將在 GitHub 存儲(chǔ)庫(kù)中報(bào)告這一點(diǎn)。
可以在此處找到有關(guān)預(yù)加載的更多信息:https ://laravel.com/docs/6.x/eloquent-relationships#eager-loading
- 1 回答
- 0 關(guān)注
- 103 瀏覽
添加回答
舉報(bào)