0

我想知道是否有可能在 CakePHP 中轻松实现以下目标:

我有三个模型。食谱成分RecipeIngredients。一个配方可以有许多成分,关系通过模型配方成分保存,因此我们有一个 HasMany 直通关系

现在,当添加一个新配方时,我有多个成分,可以很容易地保存 $this->Recipe->saveAssociated();- 只要我已经知道成分的外键。
然而,由于可能有无数种成分,因此不可能将它们全部填充到一个<select>字段或类似的东西中。因此,我希望用户填写一个字段$this->Recipe->RecipeIngredient->Ingredient['title']并根据现有条目的标题检查数据库,如果是,获取 id 并将其填充到RecipeIngredients表中,否则创建一个新成分并将该 id 保存到RecipeIngredients

通常 CakePHP 充满了快捷方式,但在这种情况下我找不到任何东西,但也许有一个我忽略的简单解决方案..

4

1 回答 1

0

好吧,你可以做的是beforeSave在你的模型中创建一个函数。如果POST'ed成分的数据已经存在(您可以在选项中查找 LIKE is 的位置Ingredient['title'])获取 ID 并将其存储在 POST'ed 数组中。如果您的数据库中还没有这样的成分,请直接存储它,获取保存的 ID 并将其存储在您的 POST 数组中。

于 2013-03-20T12:49:43.787 回答