public function show(Request $request, $id) { $episode = Episode::find($id, ['id', 'drama_id', 'title', 'alias', 'release_date', 'url', 'sc', 'duration', 'poster_url', 'introduction', 'reviews']); $episode->load(['drama' => function ($query) { $query->select('id', 'title', 'type', 'era', 'genre', 'original'); }]); if (Auth::check()) { $episode->userFavorite = Epfav::select('type', 'rating')->where('user_id', $request->user()->id)->where('episode_id', $id)->first(); } return $episode; }
public function destroy(Request $request, $id) { $version = Episodever::select('user_id')->where('episode_id', $id)->where('first', 1)->first(); if ($version->user_id != $request->user()->id) { return '抱歉, 目前仅支持添加此条目的用户删除分集> <'; } $favorite = Epfav::select('user_id')->where('episode_id', $id)->first(); if ($favorite) { return '抱歉, 已有人收藏本集,不能删除> <'; } $review = Review::select('id')->where('episode_id', $id)->first(); if ($review) { return '抱歉,已有人评论本集,不能删除> <'; } $role = Role::select('id')->where('episode_id', $id)->first(); if ($role) { return '抱歉,请先逐一删除SC关联后再删除本集'; } $item = Item::select('id')->where('episode_id', $id)->first(); if ($item) { return '抱歉,已有剧单收录本集,不能删除> <'; } $ed = Ed::select('id')->where('episode_id', $id)->first(); if ($ed) { return '抱歉,请先逐一删除歌曲关联后再删除本集'; } $episode = Episode::find($id, ['id', 'drama_id']); if ($episode->delete()) { DB::table('users')->where('id', $version->user_id)->decrement('episodevers'); return redirect()->route('drama.show', [$episode->drama_id]); } else { return '删除失败'; } }
public function destroy(Request $request, $episode_id) { $user_id = $request->user()->id; $favorite = Epfav::select('type')->where('user_id', $user_id)->where('episode_id', $episode_id)->first(); $result = DB::table('epfavs')->where('user_id', $user_id)->where('episode_id', $episode_id)->delete(); if ($result) { DB::table('users')->where('id', $user_id)->decrement('epfav' . $favorite->type); DB::table('episodes')->where('id', $episode_id)->decrement('favorites'); return ['result' => 'success']; } return response('删除失败> <', 422); }
/** * Display the specified resource. * * @param int $id * @return Response */ public function show(Request $request, $id) { $drama = Drama::find($id, ['id', 'title', 'alias', 'type', 'era', 'genre', 'original', 'count', 'state', 'sc', 'poster_url', 'introduction', 'reviews', 'favorites']); $episodes = Episode::select('id', 'title', 'alias', 'release_date', 'url', 'sc', 'duration', 'poster_url', 'introduction')->where('drama_id', $id)->orderByRaw('release_date, id')->get(); $roles = Role::with(['sc' => function ($query) { $query->select('id', 'name'); }])->select('sc_id', 'job')->distinct()->where('drama_id', $id)->whereIn('job', [0, 1, 2, 3, 4, 11])->get(); $roles = $roles->groupBy('job'); $reviews = Review::with(['user' => function ($query) { $query->select('id', 'name'); }, 'episode' => function ($query) { $query->select('id', 'title'); }])->select('id', 'episode_id', 'user_id', 'title', 'content', 'created_at', 'banned')->where('drama_id', $id)->orderBy('id', 'desc')->take(20)->get(); $eds = Ed::with(['song' => function ($query) { $query->select('id', 'title', 'artist'); }])->select('song_id')->distinct()->where('drama_id', $id)->get(); $listids = Item::select('list_id')->where('drama_id', $id)->where('episode_id', 0)->orderBy('id', 'desc')->take(10)->lists('list_id'); $lists = Dramalist::with(['user' => function ($query) { $query->select('id', 'name'); }])->select('id', 'title', 'user_id')->whereIn('id', $listids)->get(); $favorites = Favorite::with(['user' => function ($query) { $query->select('id', 'name'); }])->select('user_id', 'type', 'updated_at')->where('drama_id', $id)->orderBy('updated_at', 'desc')->take(5)->get(); $tagmaps = Tagmap::with('tag')->select(DB::raw('count(*) as count, tag_id'))->where('drama_id', $id)->groupBy('tag_id')->orderBy('count', 'desc')->take(20)->get(); //若用户已登录则取得其对整部剧及每个分集的收藏状态,及其全部评论 $epfavs = []; if (Auth::check()) { $user_id = $request->user()->id; $favorite = Favorite::select('id', 'user_id', 'type', 'rating', 'tags')->where('user_id', $user_id)->where('drama_id', $id)->first(); $ids = $episodes->pluck('id'); $rows = Epfav::select('episode_id', 'type', 'rating')->where('user_id', $user_id)->whereIn('episode_id', $ids->all())->get(); foreach ($rows as $row) { $epfavs[$row->episode_id] = $row; } $userReviews = Review::with(['episode' => function ($query) { $query->select('id', 'title'); }])->select('id', 'episode_id', 'title', 'content', 'created_at')->where('user_id', $user_id)->where('drama_id', $id)->get(); $usertags = Tagmap::with('tag')->select(DB::raw('count(*) as count, tag_id'))->where('user_id', $user_id)->groupBy('tag_id')->orderBy('count', 'desc')->take(15)->get(); } else { $favorite = 0; $userReviews = 0; $usertags = []; } return view('drama.show', ['drama' => $drama, 'episodes' => $episodes, 'reviews' => $reviews, 'eds' => $eds, 'roles' => $roles, 'lists' => $lists, 'favorites' => $favorites, 'tagmaps' => $tagmaps, 'favorite' => $favorite, 'epfavs' => $epfavs, 'userReviews' => $userReviews, 'usertags' => $usertags]); }
public function destroy(Request $request, $episode_id) { $user_id = $request->user()->id; $favorite = Epfav::select('type')->where('user_id', $user_id)->where('episode_id', $episode_id)->first(); $result = DB::table('epfavs')->where('user_id', $user_id)->where('episode_id', $episode_id)->delete(); if ($result) { DB::table('users')->where('id', $user_id)->decrement('epfav' . $favorite->type); DB::table('episodes')->where('id', $episode_id)->decrement('favorites'); } return redirect()->back(); }