CakePHP:habtm with join table 有一个额外的字段

CakePHP: habtm with join table having an extra field

我正在使用蛋糕烘焙实用程序生成模型 tables,但我遇到了一个奇怪的情况。

我有这些 table:

其中 product_guest table 跟踪客人购买的产品以及购买的产品数量。

现在,对于蛋糕烘焙的 HABTM 关系,我只能指定 table 的产品和客人之间的关系,但没有 amount 字段的踪迹。

如何正确映射这种情况以检索和添加 amount

在您的情况下,HABTM 不是正确的关联。您应该使用 hasMany through 协会。

根本的变化是您需要基于您的 product_guest table 的第三个模型。

创建这些关系:

  • Product hasMany ProductGuest
  • Guest hasMany ProductGuest
  • ProductGuest 属于 Product
  • ProductGuest 属于 Guest

错误的table结构第一个

你应该

guests : id , user_name , password 

这是要购买产品的客人。这是大师table.

products : id , product_name , description 

这是您的产品 table,包含有关产品的详细信息,例如描述等。这是大师 table。

orders -> id , amount , user_id

这里的订单是 table,其中包含产品购买者和价格等详细信息。这是大师table.

然后一个订单可以有很多项目所以

orders_products ->  order_id , product_id 

现在这将包含订单 ID 以及作为外键包含的产品。这是 Child table,其中包含产品和订单的外键。

这里 orders_products 是 HABTM,产品和订单为

一个订单可以包含多个 products.And 一个产品可以是多个订单的一部分。有意义吗?