hasMany通过添加和编辑CakePHP

时间:2014-03-19 15:59:39

标签: cakephp

我有三个表:recipesingredients ingredients_recipes很明显,他们可以管理多对多规范化关系。

但是,ingredients_recipes结构如下所示:

id: int primary key auto increment
recipe_id
ingredient_id
amount

我的问题在于amount字段。添加新配方时,我可以看到包含所有成分的多选菜单,但我无法管理如何为所选的每种成分添加amount值。在ingredients_recipes表中添加一个空值为amount的字段后的结果!

我可以在add视图中做些什么来创建与从列表中选择的成分相关的金额输入文本。

1 个答案:

答案 0 :(得分:3)

我的猜测是你没有IngredientsRecipe模型,对吧?

蛋糕中的HABTM关系是最好的,如果你只想存储那个关系。但是,如果您还想为该表添加其他值,则需要创建一个新模型并将其视为处理任何表格。

你有这个:

Recipe Model
   HABTM Ingredient
Ingredient Model
   HABTM Recipe

您必须将其更改为

(new) IngredientsRecipe Model
   belongsTo Recipe
   belongsTo Ingredient

Recipe Model
   hasMany IngredientsRecipe 
Ingredient Model
   hasMany IngredientsRecipe 

文档中提到hasMany through

PD:如果您不喜欢IngredientsRecipe名称,只需添加一个合适的名称,例如Amount或其他东西,然后只需在模型中使用useTable更改表格。我发现DoctorsPatientsRemediesEtc或类似的东西是一个令人头疼的模型名称。