Kohana 3 Обновление / Добавление связанных записей - PullRequest
0 голосов
/ 22 августа 2011

В настоящее время я пишу приложение с использованием Kohana 3.2, и это здорово, однако документация оставляет желать лучшего.

У меня есть модель рецепта и модель оценки, которые связаны has_many ипринадлежит.Рейтинги принадлежат рецепту, и рецепт имеет много оценок.Я смог успешно получить рейтинг рецепта, найдя рейтинг, который соответствует как идентификатору текущего пользователя, так и рецепту с помощью $ recipe-> рейтинги-> где ('user_id', '=', '$user-> идентификатор ').Получив рейтинг, я могу успешно его обновить.

    $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в таблицу рейтинга.Стоит ли сначала добавлять рейтинг в рецепт?

1 Ответ

0 голосов
/ 03 сентября 2011

В вашей таблице «рецептов» должен быть рейтинг «raiting».

Вы делаете все правильно.

Если у вас есть рейтинг «raiting» в свойстве рейтинга таблицы «recipe»(«рейтинг») для выбранной строки будет заполнено значением $ rating /.

...