CakePHP:habtm with join table 有一个额外的字段
CakePHP: habtm with join table having an extra field
我正在使用蛋糕烘焙实用程序生成模型 tables,但我遇到了一个奇怪的情况。
我有这些 table:
product(id_product)
guest(id_guest)
product_guest(product, guest, amount)
其中 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 一个产品可以是多个订单的一部分。有意义吗?
我正在使用蛋糕烘焙实用程序生成模型 tables,但我遇到了一个奇怪的情况。
我有这些 table:
product(id_product)
guest(id_guest)
product_guest(product, guest, amount)
其中 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 一个产品可以是多个订单的一部分。有意义吗?