php - 从数据透视表创建 hasMany 或一对多关系 - Laravel

标签 php mysql laravel laravel-5 database-normalization

我有 3 个表:

公司

产品

图片

现在,公司产品多对多关系。

意思是,一个公司可以有很多产品,一个产品可以属于多个公司。因此,我有一个名为 companies_products 的数据透视表,其中包含数据透视表或其他列,例如:价格、折扣、状态等...

注意:产品表仅代表通用数据,即它没有价格、状态等...产品仅包含主列,因为这就是它使每个公司的产品独一无二的方式。

到这里为止一切都很好。现在因为数据透视表代表每个公司的独特产品列。我还想将产品图像表附加到该数据透视表。这意味着,我的结构将是每个数据透视行都有许多产品图像。

但在 Laravel 中,我猜数据透视表没有模型,不鼓励这样做。那么如何用数据透视表实现has-Many呢?

或者有更好的解决方案来构建我的表或数据吗?

总而言之,

我有 1 个公司表和 1 个产品表(唯一)。

公司通过添加额外的数据和图像(数组)来创建最终产品。我可以处理作为枢轴列的额外数据,但不能处理图像(在本例中是图像数组)。我不能直接在产品表级别上处理一对多,因为每个公司都会添加一个带有额外数据的产品。

最佳答案

您可以定义数据透视表的模型。它包含在 Defining Custom Intermediate Table Models 中的文档。为此,模型的类应该扩展:

Illuminate\Database\Eloquent\Relations\Pivot

而不是

Illuminate\Database\Eloquent\Model

关于php - 从数据透视表创建 hasMany 或一对多关系 - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53641219/

相关文章:

mysql - 连接超时后重新连接到mysql

php - Jquery和PHP更新mysql数据库

mysql - laravel 根据属性过滤结果

Laravel 5.3 - Blade 不工作

php - 使用php/mysql的即时通知,请给我一个大概的想法

php - CSS 在图像周围环绕文字

php - 运行 Codecept 时出错

php - mysql 在 xampp 上没有响应

php - laravel 配置/数据库中 strict 的用途是什么?

php - MySql 如果存在则更新如果不存在则插入