public function saveLike($rate) { if ($this->checkUserLiked()) { $owner = $this->getOwner(); $like = new LikeModel(); $like->model = $this->getClassName(); $like->rate = $rate; $like->object_id = $owner->primaryKey; if ($this->getNodeSave()) { if (!$owner->saveNode(false)) { throw new CHttpException(404, 'error save'); } } else { $owner->save(false, false, false); } $like->save(false, false); echo CJSON::encode(array('success' => true, 'message' => 'Голос засчитан!', 'count' => $this->getLikes(), 'status' => $this->getLikeStatus(), 'object_id' => $owner->primaryKey)); } else { echo CJSON::encode(array('success' => false, 'message' => 'Вы уже отдали свой отзыв и не можете повторно')); } }
function actionLike() { $user_id = $_REQUEST['uid']; $style_id = $_REQUEST['sid']; //记录存储到like表 $likeModel = new LikeModel(); $ret = LikeModel::model()->find('user_id=:userid and style_id=:styleid', array(':userid' => $user_id, ':styleid' => $style_id)); if (!isset($ret)) { $likeModel->user_id = $user_id; $likeModel->style_id = $style_id; $likeModel->like_time = time(); if (!$likeModel->save()) { echo "like record saved fail!"; } } else { echo json_encode(array('result' => 0, 'comment' => "you have liked it!")); return; } //修改style表,like_num 加1 $styleModel = new StyleModel(); $connection = Yii::app()->db; $sql = "select like_num from tbl_style where _id = :style_id"; $command = $connection->createCommand($sql); $tmp = $command->query(array(':style_id' => $style_id))->readAll(); $styleModel->updateByPk($style_id, array('like_num' => $tmp[0]["like_num"] + 1)); echo json_encode(array('result' => 1, 'res' => array('style_id' => $likeModel->style_id, 'like_num' => $tmp[0]["like_num"] + 1))); }