我的关系既不是一对一也不是一对多,我想知道是否可以在Laravel / Eloquent模型中表达自定义关系。
基本上我有属于单一类别的产品,但多个产品可以属于同一类别。 products
表存储category_id
。这显然不是一对一的,因为类别被重用,Laravel将需要product_id
表上的categories
外键。它更接近于一对多,仅限于单个项目,但我更倾向于避免使用额外的category_product
表来定义单个关系。我怀疑这是多对一的关系吗?
答案 0 :(得分:2)
显然,这是一对多关系,其中category
有多个产品,而product
属于到一个category
:
product
属于一个category
。category
hasMany products。因此,以下关系将起作用:
class Product extends Model
{
public function category()
{
return $this->belongsTo('App\Category');
}
}
和
class Category extends Model
{
public function products()
{
return $this->hasMany('App\Product');
}
}
我希望这会有所帮助。