public function reviews($id) { $reviews = Review::with(['user' => function ($query) { $query->select('id', 'name'); }])->select('id', 'user_id', 'title', 'content', 'visible', 'created_at', 'banned')->where('episode_id', $id)->orderBy('id', 'desc')->simplePaginate(10); return $reviews; }
public function store(Request $request) { $param = $request->all(); $review = Review::create($param); $review->requirement()->update(['status' => 'review']); return Review::with('requirement')->find($review->id); }
/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { if ($movie = Movie::with('genre')->find($id)->toArray()) { $genres = Genre::get()->toArray(); $reviews = Review::with('movie')->where('movie_id', $id)->get()->toArray(); $avgKernals = $this->calculateKernals($reviews); return view('movies.show')->with('movie', $movie)->with('genres', $genres)->with('reviews', $reviews)->with('kernals', $avgKernals); } // User doesn't exist for this account $this->setMessage('Movie not found!', 'error'); return redirect('/movies'); }
public function index(Request $request) { //判断url中是否有性向参数,若没有就默认性向为耽美type=0 if ($request->has('type')) { $type = $request->input('type'); } else { $type = 0; } //若type为-1,则查询全部新剧,否则按性向即type值查询 if ($type < 0) { $episodes = Episode::join('dramas', function ($join) { $join->on('episodes.drama_id', '=', 'dramas.id')->where('episodes.release_date', '>=', date("Y-m-d", strtotime("-7 day"))); })->select('dramas.title as drama_title', 'dramas.type as type', 'dramas.original as original', 'episodes.id as episode_id', 'episodes.title as episode_title', 'episodes.reviews as reviews', 'episodes.release_date as release_date', 'dramas.sc as sc', 'episodes.alias as alias', 'episodes.poster_url as poster_url', 'dramas.era as era', 'dramas.genre as genre', 'dramas.state as state', 'episodes.duration as duration')->orderBy('episode_id', 'desc')->get(); } else { $episodes = Episode::join('dramas', function ($join) use($type) { $join->on('episodes.drama_id', '=', 'dramas.id')->where('dramas.type', '=', $type)->where('episodes.release_date', '>=', date("Y-m-d", strtotime("-7 day"))); })->select('dramas.title as drama_title', 'dramas.type as type', 'dramas.original as original', 'episodes.id as episode_id', 'episodes.title as episode_title', 'episodes.reviews as reviews', 'episodes.release_date as release_date', 'dramas.sc as sc', 'episodes.alias as alias', 'episodes.poster_url as poster_url', 'dramas.era as era', 'dramas.genre as genre', 'dramas.state as state', 'episodes.duration as duration')->orderBy('episode_id', 'desc')->get(); } $top10 = $episodes->take(10); //将一周新剧按发剧日期分组 $episodes = $episodes->groupBy('release_date'); //查询60天收藏数前10的剧单 $lists = Listfav::with(['dramalist' => function ($query) { $query->select('id', 'title'); }])->select(DB::raw('count(*) as favorite_count, list_id'))->where('created_at', '>=', date("Y-m-d H:i:s", strtotime("-60 day")))->groupBy('list_id')->orderBy('favorite_count', 'desc')->take(10)->get(); //最新剧单 $newlists = Dramalist::select('id', 'title')->orderBy('id', 'desc')->take(10)->get(); //查询30天评论数前10的剧集id $hotDramas = Review::with(['drama' => function ($query) { $query->select('id', 'title'); }])->where('created_at', '>=', date("Y-m-d H:i:s", strtotime("-30 day")))->select(DB::raw('count(*) as review_count, drama_id'))->groupBy('drama_id')->orderBy('review_count', 'desc')->take(10)->get(); //查询30天收藏前10的剧集id $hotFavorites = Favorite::with(['drama' => function ($query) { $query->select('id', 'title'); }])->where('created_at', '>=', date("Y-m-d H:i:s", strtotime("-30 day")))->select(DB::raw('count(*) as favorite_count, drama_id'))->groupBy('drama_id')->orderBy('favorite_count', 'desc')->take(10)->get(); //查询最新10条新剧的添加历史 $versions = Dramaver::select('user_id', 'drama_id', 'created_at')->where('first', 1)->orderBy('drama_id', 'desc')->take(10)->get(); $versions->load(['user' => function ($query) { $query->select('id', 'name'); }]); $versions->load(['drama' => function ($query) { $query->select('id', 'title', 'sc'); }]); $versions = $versions->filter(function ($version) { return isset($version->drama->id); }); return view('index', ['type' => $type, 'episodes' => $episodes, 'top10' => $top10, 'lists' => $lists, 'newlists' => $newlists, 'hotDramas' => $hotDramas, 'hotFavorites' => $hotFavorites, 'versions' => $versions]); }
public function populars($count) { $reviews = Review::with('author', 'comments')->leftJoin('comments', 'comments.review_id', '=', 'reviews.id')->groupBy('comments.review_id')->orderBy('comment_count', 'DESC')->where('reviews.approved', '=', true)->get(['reviews.*', DB::raw('COUNT(comments.id) as comment_count')]); //Get current page form url e.g. &page=6 $currentPage = LengthAwarePaginator::resolveCurrentPage(); //Define how many items we want to be visible in each page $perPage = 5; $offset = $currentPage === "1" ? 0 : $currentPage * $perPage; //Create a new Laravel collection $collection = $reviews; //Slice the collection to get the items to display in current page $currentPageSearchResults = $collection->slice($offset, $perPage)->all(); //Create our paginator and pass it to the view return new LengthAwarePaginator($currentPageSearchResults, count($collection), $perPage); //return $reviews->paginate($count); }
public function lists() { //最新剧单 $newLists = Dramalist::select('id', 'title')->orderBy('id', 'desc')->take(10)->get(); //查询60天收藏数前10的剧单 $hotLists = Listfav::with(['dramalist' => function ($query) { $query->select('id', 'title'); }])->select(DB::raw('count(*) as favorite_count, list_id'))->where('created_at', '>=', date("Y-m-d H:i:s", strtotime("-60 day")))->groupBy('list_id')->orderBy('favorite_count', 'desc')->take(10)->get(); //查询30天评论数前10的剧集id $hotDramas = Review::with(['drama' => function ($query) { $query->select('id', 'title'); }])->where('created_at', '>=', date("Y-m-d H:i:s", strtotime("-30 day")))->select(DB::raw('count(*) as review_count, drama_id'))->groupBy('drama_id')->orderBy('review_count', 'desc')->take(10)->get(); //查询30天收藏前10的剧集id $hotFavorites = Favorite::with(['drama' => function ($query) { $query->select('id', 'title'); }])->where('created_at', '>=', date("Y-m-d H:i:s", strtotime("-30 day")))->select(DB::raw('count(*) as favorite_count, drama_id'))->groupBy('drama_id')->orderBy('favorite_count', 'desc')->take(10)->get(); return ['newLists' => $newLists, 'hotLists' => $hotLists, 'hotDramas' => $hotDramas, 'hotFavorites' => $hotFavorites]; }
public function reviews($id) { $episode = Episode::find($id, ['id', 'drama_id', 'title']); $drama = Drama::find($episode->drama_id, ['title']); $reviews = Review::with(['user' => function ($query) { $query->select('id', 'name'); }])->select('id', 'user_id', 'title', 'content', 'created_at', 'banned')->where('episode_id', $id)->paginate(20); return view('episode.reviews', ['episode' => $episode, 'drama' => $drama, 'reviews' => $reviews]); }
public function exportReviews() { $reviews = Review::with(['drama' => function ($query) { $query->select('id', 'title', 'sc'); }, 'episode' => function ($query) { $query->select('id', 'title'); }])->select('drama_id', 'episode_id', 'title', 'content', 'created_at', 'updated_at')->where('user_id', Auth::id())->get(); $str = "剧集,主役,分集,标题,内容,发表时间,更新时间\n"; foreach ($reviews as $review) { $str .= "\"" . str_replace("\"", "\"\"", $review->drama->title) . "\",\"" . str_replace("\"", "\"\"", $review->drama->sc) . "\",\"" . str_replace("\"", "\"\"", $review->episode ? $review->episode->title : '') . "\",\"" . str_replace("\"", "\"\"", $review->title) . "\",\"" . str_replace("\"", "\"\"", $review->content) . "\"," . $review->created_at . "," . $review->updated_at . "\n"; } $headers = array('Content-Type' => 'text/csv', 'Content-Disposition' => 'attachment; filename="reviews.csv"'); return response($str, 200, $headers); }