产品:有许多部分(小型,中型)
部分:有许多PortionIngredients(ingredient_id - 100g OR 10pcs)
部分成分:有许多成分(培根,奶酪)
成分:有很多翻译(3种语言)
产品表
id
category_id
product_name
部分表
id
product_id
portion_name
portion_weight
PortionIngredients
id
portion_id
ingredient_id
amount
成分</ P>
id
base_unit
transaction_unit
multiplier
我已经尝试在hasMany和belongsTo的模型中建立关系,但没有成功。我试图获得部分产品的所有成分。任何想法都表示赞赏。
谢谢!
答案 0 :(得分:0)
如果模型之间的关系设置正确,则类似于:
// models/Product.php
class Product extends Model
{
public portions() {
return $this->hasMany("Portion");
}
}
// models/Portion.php
class Portion extends Model
{
public product() {
return $this->belongsTo("Product");
}
public ingredients() {
return $this->belongsToMany("Ingredient");
}
}
// models/Ingredient.php
class Ingredient extends Model
{
public portions() {
return $this->belongsToMany("Portion");
}
}
应该可以获取包含所有部分和部分成分的产品:
$product = Product::with("portions.ingredients")->find($id)
检查Laravel文档中的Nested Eager Loading