Chi*_*ung 5 php laravel laravel-5
我有两节课,Product和ProductFormat.正确定义了这种关系,我的产品是hasManyProductFormat.
public function formats()
{
return $this->hasMany(ProductFormat::class);
}
Run Code Online (Sandbox Code Playgroud)
当我试图加载与特定列的关系时,如文档(https://laravel.com/docs/5.6/eloquent-relationships#eager-loading)中所示,它没有按预期工作.
例如,当我执行以下操作时:
Product::with('formats:id,upc')->get();
Run Code Online (Sandbox Code Playgroud)
我得到了我的产品,到处都是空格式.
{
id: 1,
formats: [ ]
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我执行以下操作:
Product::with('formats')->get();
Run Code Online (Sandbox Code Playgroud)
我得到了预期的格式,但它有太多不需要的列.
{
id: 1,
formats: [
{
id: 1,
upc: "101862422191",
weight: 8.46,
weight_unit: "kg"
}
]
}
Run Code Online (Sandbox Code Playgroud)
Usm*_*Jdn 17
您总是需要选择涉及关系的外键/主键.在急切的负载中获取product_id也会有效
Product::with('formats:id,upc,product_id')->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2471 次 |
| 最近记录: |