【发布时间】:2018-04-27 01:10:07
【问题描述】:
我将有一个包含其他表(关系)的信息的表。此表中的大部分信息将只有引用相关表的 ID。如果我使用“产品”作为此表的示例,它的某些列可能看起来像这样:
id | name | type_id | price_id | location_id | sale_id
----------------------------------------------------------------
1 | prod1 | 1 | 1 | 2 | 4
2 | prod2 | 2 | 1 | 1 | 1
3 | prod3 | 3 | 2 | 6 | 2
4 | prod4 | 1 | 2 | 3 | 4
我正在尝试获取此“产品”表并将其转储到列表中。当我将其转储(关系)时,我需要查找这些列中的所有项目。我知道怎么做belongsToMany 和hasMany,但是如果我有一个“产品”模型,我不确定如何用一个Eloquent 模型一次性做到这一点?我应该只将产品表设为数据透视表吗?我可以使用 Eloquent 模型还是应该直接使用查询生成器?我想如果我使用 withPivot 它会返回额外的列,但会返回列中的原始 ID 值。我需要从他们各自的表(关系)中查找值。
试过这样的:
public function productItems(){
return $this->belongsToMany(Product::class)->withPivot(["type_id","price_id",...]);
}
【问题讨论】:
-
你尝试过什么?你的模型看起来怎么样?你在 laravel 中检查过eager loading 吗?
-
见上面的编辑。
-
err,你能发布你的
Product模型吗?还有,这个productItems()在哪里?上表是代表Product还是别的什么? -
看了你的问题2遍,不明白你想要什么。但我认为你可以更容易地了解 EAV 模型来设计产品表结构。
标签: laravel