public function listTopics() { if (!is_null($this->topics)) { return $this->topics; } /** @var Collection $topics */ switch ($this->listType) { case self::NEW_POSTS: $topics = TopicModel::recentPosts()->limit(10)->get(); break; case self::NEW_TOPICS: $topics = TopicModel::recentTopics()->limit(10)->get(); break; case self::HOT_TOPICS: default: return []; } $topics->each(function (TopicModel $topic) { $topic->setUrl($this->topicPage, $this->controller); }); return $topics; }