Cakephp HABTM带有配方成分的附加列

Cakephp HABTM带有配方成分的附加列,cakephp,has-and-belongs-to-many,Cakephp,Has And Belongs To Many,对于我的食谱分享网站,我想为食谱及其配料创建一个数据库和CakePHP模型 我创建了两个表格:食谱和配料。第三个表格是HABTM表格,用于配料和配方,其中还存储了配方所需的配料量。如何为第三个表创建模型 第三张表看起来像这样: recipe\u id 成分id 金额 测量单位 我还考虑添加另一个测量单位表来存储所有可能的单位(例如汤匙、茶匙、杯子等)。这会不会太多?在Cake的ORM中,HABTM实际上是以下两种模型关联结构的抽象(使用您的示例): 及 推断出InCreditsRecipe模型,

对于我的食谱分享网站,我想为食谱及其配料创建一个数据库和CakePHP模型

我创建了两个表格:食谱和配料。第三个表格是HABTM表格,用于配料和配方,其中还存储了配方所需的配料量。如何为第三个表创建模型

第三张表看起来像这样:

recipe\u id
成分id
金额
测量单位


我还考虑添加另一个测量单位表来存储所有可能的单位(例如汤匙、茶匙、杯子等)。这会不会太多?

在Cake的ORM中,HABTM实际上是以下两种模型关联结构的抽象(使用您的示例):

推断出
InCreditsRecipe
模型,该模型仅用于链接两个一级模型,
配料
配方

然而,在您的案例中,您实际上希望
IngredientsRecipe
成为一流的模型,这打破了HABTM抽象。事实上,您需要做的是明确定义上面的两个关联结构,以便Cake将
IngCreditsRecipe
模型视为一等公民,允许您对其进行查询,将记录保存到其中,等等


另外,不,我认为创建一个额外的
measurementit
模型并不过分。在Cake的ORM中,HABTM实际上是以下两种模型关联结构的抽象(使用您的示例):

推断出
InCreditsRecipe
模型,该模型仅用于链接两个一级模型,
配料
配方

然而,在您的案例中,您实际上希望
IngredientsRecipe
成为一流的模型,这打破了HABTM抽象。事实上,您需要做的是明确定义上面的两个关联结构,以便Cake将
IngCreditsRecipe
模型视为一等公民,允许您对其进行查询,将记录保存到其中,等等


另外,不,我认为创建一个额外的
measurementit
模型并不过分。它将为您提供更大的灵活性。

这样想,然后一次处理一块:

`Recipe` (1)--(n) IngredientsRecipe (n)--(1) Ingredient
  • Recipe
    中,创建与
    InCreditsRecipe
  • 成分
    中,创建与
    InCreditsRecipe
  • InCreditsRecipe
    中创建与
    配方的关联
  • 仍在
    InCreditsRecipe
    中创建与
    成分的关联
  • 当你这么做的时候,忘掉HABTM,想想
    有很多
    属于你的

    顺便说一句,您不必调用模型InCreditsRecipe,这只是默认/约定


    完成后,将其视为hasMany、belongsTo或HABTM,视情况而定。

    这样想,然后一次处理一块:

    `Recipe` (1)--(n) IngredientsRecipe (n)--(1) Ingredient
    
  • Recipe
    中,创建与
    InCreditsRecipe
  • 成分
    中,创建与
    InCreditsRecipe
  • InCreditsRecipe
    中创建与
    配方的关联
  • 仍在
    InCreditsRecipe
    中创建与
    成分的关联
  • 当你这么做的时候,忘掉HABTM,想想
    有很多
    属于你的

    顺便说一句,您不必调用模型InCreditsRecipe,这只是默认/约定


    完成后,请将其视为hasMany、belongsTo或HABTM(视情况而定)。

    对不起,我想我完全迷失在这一切中了。如何明确定义这两个关联结构?通过创建模型php文件,就像配料和食谱的文件一样?很抱歉这么久才回复您。基本上,您需要定义三个模型而不是两个,因为您并不是真正将
    配方
    成分
    直接连接在一起。相反,您将
    配方
    加入
    配方元素
    加入
    配料
    ;和
    成分
    配方成分
    配方
    <代码>配料
    配方
    继续扮演现在的角色,并且
    RecipeElement
    包含有关配方中每种配料的具体测量值和单位的信息。我希望这是有道理的。作为解释,我补充了一个答案,但我向丹尼尔脱帽致敬;)对不起,我想我完全迷失在这一切中了。如何明确定义这两个关联结构?通过创建模型php文件,就像配料和食谱的文件一样?很抱歉这么久才回复您。基本上,您需要定义三个模型而不是两个,因为您并不是真正将
    配方
    成分
    直接连接在一起。相反,您将
    配方
    加入
    配方元素
    加入
    配料
    ;和
    成分
    配方成分
    配方
    <代码>配料
    配方
    继续扮演现在的角色,并且
    RecipeElement
    包含有关配方中每种配料的具体测量值和单位的信息。我希望这是有道理的。作为解释,我补充了一个答案,但我向丹尼尔脱帽致敬;)
    `Recipe` (1)--(n) IngredientsRecipe (n)--(1) Ingredient