【发布时间】:2017-10-13 07:51:13
【问题描述】:
我有这 3 张桌子
产品
- 身份证
- product_type_id
- 姓名
产品属性
- 身份证
- product_type_id
- 姓名
product_attribute_values
- 身份证
- attribute_id
- product_id
- 价值
- 产品有多个属性,它们由product_type相关联
- 属性有多个属性值,它们通过attribute_id关联
- 属性值与一个属性和一个产品相关,它们通过product_id与产品相关
我创建了 3 个模型,Product、ProductAttribute 和 ProductAttributeValue
产品型号
public function attributes(){
return $this->hasMany('App\ProductAttribute', 'product_type_id', 'product_type_id');
}
产品属性模型
public function attributeValues(){
return $this->hasMany('App\ProductAttributeValue', 'attribute_id', 'id');
}
然后当我试图获得具有所有相关属性和属性值的产品时
$product = Product::find(1)->with('attributes.attributeValues')->get()->toArray();
正在拉入该属性的所有属性值。
问题是我不确定如何为两个不同的模型设置 2 个外键...
我希望我解释得足够好。
【问题讨论】:
标签: php laravel model eloquent