gpt4 book ai didi

多个模型中的 Laravel 关系,具有belongsToMany 和hasMany

转载 作者:行者123 更新时间:2023-12-04 09:45:42 26 4
gpt4 key购买 nike

我正在开发一个电子商务应用程序。
我有3个模型。 Product , Color , ProductImage .Product之间的关系和 Color是:属于许多

<?php

namespace App\Entities\Product;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
/**
* A product has many colors.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function colors()
{
return $this->belongsToMany(Color::class);
}
}
Color之间的关系和 ProductImage是: hasMany
<?php

namespace App\Entities\Product;

use Illuminate\Database\Eloquent\Model;

class Color extends Model
{
/**
* A color has many images.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function images()
{
return $this->hasMany(ProductImage::class);
}
}

Question is how to make a relation between the Product and ProductImage model?

How to design the product_images table?

id , color_id , image像这样?

my use case is, I will make a slider on a single product page. There will be a Color select option. If a user selects a color, need to load product images associate with that selected color.

Appreciate your help :)

最佳答案

我也在做一个电子商务项目,我设计了我的数据库,如下所示。

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

如果您有一件 id 为 101 且产品颜色为红色的产品 T 恤,那么 101 和红色一起是唯一的 product_color。

Product_image 属于 product 和 product_colors 表。 product_id 和 product_color_id 一起是复合键。如果您有多个图像用于相同的产品 ID 和颜色,那么您可以将图像保存为 JSON 数据。我为我的应用程序所做的。

enter image description here

虽然我把我的数据库设计成图 01。但是如果我们想分离颜色表,那么我们可以这样设计数据库。
enter image description here

关于多个模型中的 Laravel 关系,具有belongsToMany 和hasMany,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62127925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com