/** * * Create a new discussion instance based on the required data. * * @param integer $categoryId * @param integer $userId * @param string $title * @param string $body * @return Discussion */ public function start($categoryId, $userId, $title, $body) { $discussion = new Discussion(); $discussion->categoryId = $categoryId; $discussion->userId = $userId; $discussion->title = $title; $discussion->body = $body; $discussion->raise(new DiscussionWasStarted($discussion)); return $discussion; }
/** * We have a number of observers that immediately update related data when certain * actions occur, such as the number of comments on a discussion, or who last updated * or contributed to a category in some way. */ public function boot() { $countCacheObserver = $this->app->make(CountCacheObserver::class); $updatedByObserver = new UpdatedByObserver(); Comment::observe($countCacheObserver); Comment::observe($updatedByObserver); Discussion::observe($countCacheObserver); Discussion::observe($updatedByObserver); }