私は現在、Kohana 3.2を使用してアプリケーションを作成していますが、これは素晴らしいドキュメントです。Kohana 3関連エントリーの更新/追加
私はレシピモデルと評価モデルを持っています。これは、has_manyとbelongs_toによって関連しています。レーティングはレシピに属し、レシピには多くのレーティングがあります。私は、現在のユーザーのIDとレシピの両方に対応するレーティングを$ recipe-> ratings-> where( 'user_id'、 '='、 '$')で検索することで、レシピのレーティングを正常に取得できました。 user-> id ')。評価を取得したら、それを正常に更新することができます。
$recipe = ORM::factory('recipe')
->where('id', '=', $recipe_id)
->find();
$my_rating = $recipe->ratings
->where('user_id', '=', $user->id)
->find();
$my_rating->rating = $rating;
$my_rating->save();
評価がまだない場合に問題が発生します。私が検索したすべてのもので、評価を追加するために$ recipe-> add()関数を使用しているはずですが、エラーは引き続き発生します。評価を読み込もうとすると、エントリが見つかったことを確認する必要がありますか? ORMが存在するかどうかを知る方法があるように感じ、そうでない場合は作成する必要があります。
上記のコードは新しい評価を作成しますが、自動的にレシピテーブルにレシピIDを追加することはありません。レシピにレーティングを最初に追加すべきですか?
'$ my_rating-> loaded()'を 'find()'の後に指定すると、評価が既に存在するかどうかを確認できます。しかし、save()は既にエントリをチェックし、見つからなければ 'INSERT'し、エントリが存在する場合は' UPDATE'を行います。どのようなエラーが発生しているのか、より具体的にすることはできますか? – Luwe