Cakephp HABTM带有配方成分的附加列
对于我的食谱分享网站,我想为食谱及其配料创建一个数据库和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模型,
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
中创建与成分的关联
有很多
和属于你的
顺便说一句,您不必调用模型InCreditsRecipe,这只是默认/约定
完成后,将其视为hasMany、belongsTo或HABTM,视情况而定。这样想,然后一次处理一块:
`Recipe` (1)--(n) IngredientsRecipe (n)--(1) Ingredient
Recipe
中,创建与InCreditsRecipe
成分
中,创建与InCreditsRecipe
InCreditsRecipe
中创建与配方的关联
InCreditsRecipe
中创建与成分的关联
有很多
和属于你的
顺便说一句,您不必调用模型InCreditsRecipe,这只是默认/约定
完成后,请将其视为hasMany、belongsTo或HABTM(视情况而定)。对不起,我想我完全迷失在这一切中了。如何明确定义这两个关联结构?通过创建模型php文件,就像配料和食谱的文件一样?很抱歉这么久才回复您。基本上,您需要定义三个模型而不是两个,因为您并不是真正将
配方
和成分
直接连接在一起。相反,您将配方
加入配方元素
加入配料
;和成分
到配方成分
到配方
<代码>配料和配方
继续扮演现在的角色,并且RecipeElement
包含有关配方中每种配料的具体测量值和单位的信息。我希望这是有道理的。作为解释,我补充了一个答案,但我向丹尼尔脱帽致敬;)对不起,我想我完全迷失在这一切中了。如何明确定义这两个关联结构?通过创建模型php文件,就像配料和食谱的文件一样?很抱歉这么久才回复您。基本上,您需要定义三个模型而不是两个,因为您并不是真正将配方
和成分
直接连接在一起。相反,您将配方
加入配方元素
加入配料
;和成分
到配方成分
到配方
<代码>配料和配方
继续扮演现在的角色,并且RecipeElement
包含有关配方中每种配料的具体测量值和单位的信息。我希望这是有道理的。作为解释,我补充了一个答案,但我向丹尼尔脱帽致敬;)
`Recipe` (1)--(n) IngredientsRecipe (n)--(1) Ingredient