public function show(Request $request, $id) { $song = Song::find($id, ['id', 'title', 'alias', 'artist', 'url', 'poster_url', 'staff', 'lyrics', 'reviews', 'favorites']); $reviews = Songrev::with(['user' => function ($query) { $query->select('id', 'name'); }])->select('id', 'user_id', 'title', 'content', 'created_at')->where('song_id', $id)->orderBy('id', 'desc')->take(20)->get(); $favorites = Songfav::with(['user' => function ($query) { $query->select('id', 'name'); }])->select('user_id', 'created_at')->where('song_id', $id)->orderBy('created_at', 'desc')->take(10)->get(); $eds = Ed::with(['drama' => function ($query) { $query->select('id', 'title'); }, 'episode' => function ($query) { $query->select('id', 'title'); }])->where('song_id', $id)->get(); if (Auth::check()) { $user_id = $request->user()->id; $favorite = Songfav::selectRaw(1)->where('user_id', $user_id)->where('song_id', $id)->first(); $userReviews = Songrev::select('id', 'title', 'content', 'created_at')->where('user_id', $user_id)->where('song_id', $id)->get(); } else { $favorite = 0; $userReviews = 0; } return view('song.show', ['song' => $song, 'eds' => $eds, 'reviews' => $reviews, 'favorites' => $favorites, 'favorite' => $favorite, 'userReviews' => $userReviews]); }