/** * Display a listing of the resource. * * @return Response */ public function index() { // Display the forum index // Get the list of forums the user can access $accessCollection = Auth::user()->forumAccess; // Get the list of forums the user has access to $forums = Forum::whereIn('id', $accessCollection)->orderBy('display_order', 'ASC')->get(); $latestPosts = Post::topic()->with('forum')->whereIn('forum_id', $accessCollection)->orderBy('created_at', 'DESC')->limit(4)->get(); // Get the online users $fiveMinutesAgo = Carbon::now()->subMinutes(5); $usersOnline = User::where('active_at', '>=', $fiveMinutesAgo)->orderBy('active_at', 'DESC')->get(); return view('forums.forum')->withForums($forums)->withLatestPosts($latestPosts)->withOnlineUsers($usersOnline); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $validator = Validator::make($request->all(), ['topic_id' => 'required|integer', 'content' => 'required']); if ($validator->fails()) { return response()->json(['errors' => $validator->errors()], 400); } $topic = Topic::find($request->topic_id); // use exception instead later if ($topic) { $post = new Post(); $post->content = $request->content; $post->user()->associate($this->user); $post->topic()->associate($topic); $post->save(); } return response()->json(['post' => $post], 201); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $token = JWTAuth::getToken(); $user = JWTAuth::toUser($token); $validator = Validator::make($request->all(), ['title' => 'required|max:255', 'content' => 'required']); if ($validator->fails()) { return response()->json(['errors' => $validator->errors()], 400); } $topic = new Topic(); $topic->title = $request->title; $topic->user()->associate($user); $topic->save(); $post = new Post(); $post->content = $request->content; $post->topic()->associate($topic); $post->user()->associate($user); $post->save(); return response()->json(['topic' => $topic, 'post' => $post], 201); }