CakePHPで次のことを簡単に達成できる可能性があるかどうか疑問に思いました。
私は3つのモデルを持っています。レシピ、材料、レシピ材料。1つのレシピに多くの材料を含めることができます。関係はモデルRecipeIngredientsを介して保存されるため、関係を介してHasManyがあります。
これで、新しいレシピを追加するときに、複数の材料があります $this->Recipe->saveAssociated();
。これは、材料の外部キーをすでに知っている限り、簡単に保存できます。
それにもかかわらず、無数の成分が存在する可能性があるため、フィールドまたは同様のもの
にそれらすべてを入力することは不可能です。<select>
したがって、ユーザーがフィールドに$this->Recipe->RecipeIngredient->Ingredient['title']
入力し、データベースにタイトルのある既存のエントリと照合するようにします。はいの場合は、IDを取得してRecipeIngredientsテーブルに入力します。そうでない場合は、新しい材料を作成して、そのIDをRecipeIngredientsに保存します。
通常、CakePHPにはショートカットがたくさんありますが、この場合は何も見つかりませんでしたが、見落としていた簡単な解決策があるかもしれません。