我有两节课Product
and ProductFormat
。关系定义正确,我的产品hasMany
产品格式。
public function formats()
{
return $this->hasMany(ProductFormat::class);
}
当我尝试急切加载与特定列的关系时,如文档中所示(https://laravel.com/docs/5.6/eloquent-relationships#eager-loading https://laravel.com/docs/5.6/eloquent-relationships#eager-loading),它没有按预期工作。
例如,当我执行以下操作时:
Product::with('formats:id,upc')->get();
我得到的产品到处都是空格式。
{
id: 1,
formats: [ ]
}
但是,如果我执行以下操作:
Product::with('formats')->get();
我得到了预期的格式,但它有太多不需要的列。
{
id: 1,
formats: [
{
id: 1,
upc: "101862422191",
weight: 8.46,
weight_unit: "kg"
}
]
}
您始终需要选择关系中涉及的外键/主键。在急切加载中也获取product_id,它将起作用
Product::with('formats:id,upc,product_id')->get();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)