lifetime; } public function getKey($id = null) { return 'featured_question_list'; } public function getContent($id = null) { $questions = $this->findQuestions($this->limit); if ($questions->count() == 0) { return []; } $result = []; foreach ($questions as $question) { $result[] = [ 'id' => $question->id, 'title' => $question->title, 'cover' => $question->cover, 'favorite_count' => $question->favorite_count, 'answer_count' => $question->answer_count, 'view_count' => $question->view_count, 'like_count' => $question->like_count, ]; } return $result; } /** * @param int $limit * @return ResultsetInterface|Resultset|QuestionModel[] */ protected function findQuestions($limit = 5) { return QuestionModel::query() ->where('featured = 1') ->andWhere('published = :published:', ['published' => QuestionModel::PUBLISH_APPROVED]) ->andWhere('deleted = 0') ->orderBy('RAND()') ->limit($limit) ->execute(); } }