4 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
像這樣:
$order = Order::with([
? ? 'company:id,name,size',
? ? 'complaints:id,name,body',
? ? 'person',? ? ?
? ? 'items',??
? ? 'items.product:id,name,price',
? ? 'items.product.stockManagement',
? ? 'status:id',
? ? 'items.product.media',
? ? 'items.product.mainProduct',
? ? 'items.product.mainProduct.media'
])->findOrFail($id);
該文檔對于特定列的加載非常簡短(您甚至必須向下滾動一點(diǎn)到“急切加載特定列”的標(biāo)題)。
您可能并不總是需要所檢索的關(guān)系中的每一列。因此,Eloquent 允許您指定要檢索關(guān)系的哪些列:
$books?=?App\Book::with('author:id,name')->get();
筆記:
使用此功能時(shí),您應(yīng)該始終將id 列和任何相關(guān)的外鍵列包含在您希望檢索的列列表中。

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
我遇到了同樣的問題。您需要指定foreign id
not id (主鍵)。
例如:
Data::with('other:id,name')->get();
如果你自定義了外文名稱就不行了。因此,您需要完整添加您的外部列名稱。
Data::with('other:foreign_id,name')->get();
那會起作用的!

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
您還可以為一些更高級的關(guān)系查詢提供回調(diào)。
Order::with([
'company' => function ($q) {
$q->select('id', 'name');
}
])

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
$order = Order::with(
['company' => function($query) {
$query->select('id','name','size')
}),
'complaints' => function($query) {
$query->select('id','name','body')
}),
'person',
'items',
'items.product' => function($query) {
$query->select('id','name','price')
}), 'items.product.stockManagement','status'=> function($query) {
$query->select('id')
}),'items.product.media', 'items.product.mainProduct', 'items.product.mainProduct.media'])->findOrFail($id);
- 4 回答
- 0 關(guān)注
- 232 瀏覽
添加回答
舉報(bào)