0

我在开发这个 CakePHP 模型/控制器时遇到了困难。

我有一个产品模型。该模型有许多定价、图像、视频、内容选项卡等。

该模型还需要与其他产品有许多关系。- 例如。配件、套件、子产品(父级的变体型号)

所以我创建了一个 products_products 表,其中有一个 product_id 和一个 related_id - 相关配件/套件或子产品的 id - 加上关系类型。

表看起来像:id,product_id,related_id,type,sort...

我的挑战是——当我加载一个主要产品时,我想获取它相关产品的所有相关模型数据——因此,将相关模型视为它自己的产品(它是)并加载所有相关模型数据

我可以使用 HABTM 关系轻松地从相关表中加载数据.. 但是仅仅知道产品是相关的并不能给我它的产品模型数据——定价、视频、图像、促销等。

那么开发和加载这个模型的最佳方式是什么?我可以使用标准关联模型关系来做到这一点,还是我需要使用主产品模型来获取我的相关项目,使用子查询使用相关 products_products 表中的产品 ID 列表(这看起来很不像蛋糕)

? 我会很感激有经验的蛋糕师的任何意见。

提前致谢。

4

1 回答 1

0

通过使用自我关联,您可以省去很多麻烦。

本质上,您需要在 Product 模型中创建一个 parent_id 字段,并且带有配件等的产品将在 parent_id 字段中具有主要产品的 id。这将简化将产品从数据库中取出的过程,因为您只需调用 find('threaded')。

从那里,很容易为保存有关产品的视频/图像数据的表设置 hasMany 关系。

于 2013-01-22T21:37:34.907 回答