/** * Stores a thread * * @param int $forumId The ID of the forum */ public function store($forumId) { $forum = Forum::isAccessible()->findOrFail($forumId); $forumPost = new ForumPost(Input::all()); $forumPost->root = true; $forumPost->creator_id = user()->id; $forumPost->updater_id = null; $forumThread = new ForumThread(Input::all()); $forumThread->forum_id = $forumId; $forumThread->creator_id = user()->id; $forumThread->updater_id = null; $forumThread->createSlug(); if (!$forumPost->isValid()) { return Redirect::to('forums/threads/create')->withInput()->withErrors($forumPost->getErrors()); } if (!$forumThread->isValid()) { return Redirect::to('forums/threads/create')->withInput()->withErrors($forumThread->getErrors()); } $forumThread->forceSave(); $forumPost->thread_id = $forumThread->id; $forumPost->forceSave(); $forum->latest_thread_id = $forumThread->id; $forum->threads_count++; $forum->posts_count++; $forum->forceSave(); $user = user(); $user->posts_count++; $user->save(); $this->alertFlash(trans('app.created', ['Thread'])); return Redirect::to('forums/threads/' . $forumThread->id . '/' . $forumThread->slug); }
/** * Stores a post * * @param int The id of the thread */ public function store($id) { $forumPost = new ForumPost(Input::all()); $forumPost->creator_id = user()->id; $forumPost->thread_id = $id; $forumThread = ForumThread::isAccessible()->findOrFail($id); if ($forumThread->closed) { $this->alertError(trans('forums::closed_info')); return; } $valid = $forumPost->save(); if (!$valid) { return Redirect::to('forums/threads/create')->withInput()->withErrors($forumPost->getErrors()); } $forumThread->posts_count++; $forumThread->forceSave(); $user = user(); $user->posts_count++; $user->save(); $this->alertFlash(trans('app.created', ['Post'])); return Redirect::to($forumPost->paginatedPostUrl()); }