我目前正在使用Kohana 3.2编写一个应用程序,这很棒,但是文档留下了一些需要的东西。Kohana 3更新/添加相关条目
我有一个食谱模型和一个评分模型,它们通过has_many和belongs_to相关。评分属于配方,配方有很多评分。通过找到与当前用户的id和配方相对应的评级,我能够成功检索配方的评级,方法是使用$ recipe-> ratings-> where('user_id','=','$用户> 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有办法知道它是否存在,如果不存在,它应该创建它。
上述代码将创建新评级,但不会自动将recipe_id添加到评级表。我应该先将配方添加到配方中吗?
通过在'find()'后加'($ my_rating-> loaded()',你可以检查评分是否已经存在。但是save()已经检查了一个条目,如果没有找到,将会'INSERT',如果条目存在,将会'UPDATE'。你能更具体地了解你所得到的错误吗? – Luwe