public function run() { /** * 验证用户权限 */ if (false == $this->verifyUserAuth()) { return false; } $user = $this->getUserAuth(); /** * 获取关注次数 */ $questionId = intval($this->getDataItem('question_id', 0)); if ($questionId <= 0) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, "问题ID必须大于0."); } $follow = QuestionFollow::count(["conditions" => "user_id = :uid: AND question_id = :qid: ", "bind" => ['uid' => $user->userId, 'qid' => $questionId]]); /** * 有权限且未关注则执行关注 */ if ($follow == 0) { $qf = new QuestionFollow(); $qf->user_id = $user->userId; $qf->question_id = $questionId; if ($qf->save()) { Question::updateFollows($questionId); $this->success = 1; } else { return $this->databaseErrorLog($qf); } } else { $this->success = 2; } $this->setResult(["success" => $this->success]); }