具有belongstomy和hassmany的多模型中的Laravel关系

具有belongstomy和hassmany的多模型中的Laravel关系,laravel,eloquent,Laravel,Eloquent,我正在开发一个电子商务应用程序 我有三种型号产品,颜色,产品图像 产品和颜色之间的关系是:属于同一种颜色 如果您只需要productImages,您可以通过使用belongTomany。但是如果你需要颜色和产品图片,你可以通过点来实现 $product->load('colors.images'); UPD 阅读您的描述,在我看来,表图像应该有两个键产品标识和颜色标识。然后像这样做: public function images() { return $this->hasM

我正在开发一个电子商务应用程序

我有三种型号<代码>产品,
颜色
产品图像

产品
颜色
之间的关系是:属于同一种颜色


如果您只需要productImages,您可以通过
使用belongTomany。但是如果你需要颜色和产品图片,你可以通过点来实现

$product->load('colors.images');
UPD 阅读您的描述,在我看来,表
图像
应该有两个键
产品标识
颜色标识
。然后像这样做:

public function images()
{
    return $this->hasMany(ProductImage::class);
}

public function current_image(int $color_id)
{
    return $this->hasOne(ProductImage::class)->where('color_id', $color_id);
}

我还在从事一个电子商务项目,我的数据库设计如下。

一个产品有多种产品颜色,但一种产品颜色只属于一种产品。产品id和颜色一起构成产品颜色表的复合键(唯一)

如果您有一件id为101的产品T恤,其产品颜色为红色,那么101和红色一起是一种独特的产品颜色

Product_图像属于Product和Product_colors表。product_id和product_color_id是组合键。如果您有多个相同产品id和颜色的图像,则可以将图像保存为JSON数据。这是我申请的

虽然我已经像图01一样设计了我的数据库。但是如果我们想分离颜色表,那么我们可以这样设计数据库。

这是否回答了您的问题@谢谢你的回复。我一定会检查答案。更新的问题,如何设计
产品图片
表?因为
产品
有很多
颜色
颜色
有很多
产品
,所以
产品图片
表中将有多个
颜色id
。那么,如何在没有
产品id
或其他信息的情况下获得单个
产品
相关图像?