/** * Gets the last reply for the current forum post. * * @return array */ public function lastReply() { try { $replies = ForumReply::where('post_id', $this->id)->get(); if ($replies->isEmpty()) { return null; } $reply = $replies->last(); return ['author' => $reply->author->name, 'date' => $reply->created_at]; } catch (Exception $e) { return null; } }
public function forumReplyStore(Request $request) { if (!Auth::check()) { return response('Unauthorized', 401); } $user = Auth::user(); $forum_id = $request->input('forum_id'); $post_id = $request->input('post_id'); $data = ['author_id' => $user->id, 'body' => $this->sanitizeData($request->input('body')), 'post_id' => $post_id]; if (!ForumReply::valid($data)) { return redirect()->route('laravel-forum.view.post', [$forum_id, $post_id]); } $reply = ForumReply::create($data); event(new PostReply($reply, $user)); return redirect()->route('laravel-forum.view.post', [$forum_id, $post_id]); }
/** * Get a users post count (posts created and replies). * @param int $user_id User Id. * @return int */ public function getPostCount($user_id) { /* Get count from forum posts */ try { $posts = ForumPost::where('author_id', $user_id)->get(); $posts = count($posts); } catch (Exception $e) { $posts = 0; } /* Get count from forum replies */ try { $replies = ForumReply::where('author_id', $user_id)->get(); $replies = count($replies); } catch (Exception $e) { $replies = 0; } /* Return total */ return $posts + $replies; }