/** * Список новостей * @param Request $request * @param null $alias * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function feed(Request $request, $alias = null) { $page = Paginator::resolveCurrentPage('page'); $per_page = config('paginator.per_page'); $category = Category::where('alias', $alias)->first(); $order_by = $request->input('order_by'); $articles = Article::whereRaw('1=1'); switch ($order_by) { case 'name_desc': $articles->orderBy('name', 'desc'); break; case 'name_asc': $articles->orderBy('name', 'asc'); break; case 'date_desc': $articles->orderBy('created_at', 'desc'); break; case 'date_asc': $articles->orderBy('created_at', 'asc'); break; default: $articles->orderBy('created_at', 'desc'); break; } if (is_null($category)) { $articles = $articles->paginate($per_page); } else { $articles = $articles->where('category_id', $category->id)->paginate($per_page); } if ($order_by) { $articles->appends('order_by', $order_by); } return view('pages/feed', ['articles' => $articles, 'category' => $category, 'page' => $page, 'order_by' => $order_by]); }