lodas
(Zybov M)
1
Здравствуйте. Делал рейтинг по примеру с сайта: Пример рейтинга
Вроде все получилось, но не могу разобраться что происходит в этих строчках кода:
if ($rating->save())//если рейтинг сохранился в таблицу, то...
{
$good = $rating->product_id;
$good->rating = round($good->rating + ($rate * 100 - $good->rating) / ($good->marksCount + 1));
$good->save();
echo 'success';
}
для чего мы сохраняем в
$good = $rating->product_id
откуда в переменной берется свойство
$good->rating
куда мы сохраняем, ведь нет такой модели
$good->save();
ineersa
(Ineersa)
2
$rating = Rating::model()->with(array('article', 'article.marksCount'))
->findByAttributes(array(
'article_id' => $article_id,
'user_id' => $user,
));
Собственно там выборка идет с relations, значит по fk привязаны другие модели
$rating = new Rating;
$rating->article_id = $article_id;
$rating->user_id = $user;
$rating->value = $rate;
if ($rating->save()) {//сохраняем rating
$good = $rating->article; // $good у нас модель Article
$good->rating = round($good->rating + ($rate * 100 - $good->rating) / ($good->marksCount + 1));
$good->save();
echo 'success';
}
Уж очень хитро там, посмотрите как сделано в cookbook, как по мне намного проще.