Exemple #1
0
 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]);
 }