Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <div class="container">
- <div class="col-xs-12 row-centered">
- {{ $images->appends(request()->input())->links()}}
- </div>
- </div>
- public function filter(Request $request)
- {
- $brand = $request->brand;
- $color = $request->color;
- $style = $request->style;
- $material = $request->material;
- $year = $request->year;
- $shape = $request->shape;
- $sorting = $request->sort;
- $page = $request->page;
- $user_id = $request->user_id;
- $sortingMethod = 'desc';
- $sortingParameter = 'created_At';
- //Abfrage wie sortiert werden soll
- if ($sorting == 'uploadDesc') {
- $sortingMethod = 'desc';
- $sortingParameter = 'created_At';
- } else if ($sorting == 'uploadAsc') {
- $sortingMethod = 'asc';
- $sortingParameter = 'created_At';
- } else if ($sorting == 'leer') {
- $sortingMethod = 'desc';
- $sortingParameter = 'created_At';
- } else if ($sorting == 'likesAsc') {
- $sortingParameter = 'count';
- $sortingMethod = 'asc';
- } else if ($sorting == 'likesDesc') {
- $sortingParameter = 'count';
- $sortingMethod = 'desc';
- }
- //$imagesQuery = DB::table('images')->select('brand', 'color', 'style', 'material', 'shape', 'year', 'id', 'path', 'created_at')->where('contest', 'true');
- $imagesQuery = DB::table('images')
- ->leftJoin('likes', 'images.id', '=', 'likes.image_id')
- ->select('images.*', DB::raw("count(likes.image_id) as count"))
- ->groupBy('images.id', 'images.brand', 'images.user_id', 'images.color', 'images.style', 'images.material', 'images.shape', 'images.year', 'images.desc', 'images.path', 'images.name', 'images.model', 'images.contest', 'images.remember_token', 'images.created_at', 'images.updated_at')
- ->orderBy($sortingParameter, $sortingMethod);
- $brands = DB::table('images')->select('brand')->groupBy('brand')->get();
- $colors = DB::table('images')->select('color')->groupBy('color')->get();
- $styles = DB::table('images')->select('style')->groupBy('style')->get();
- $materials = DB::table('images')->select('material')->groupBy('material')->get();
- $years = DB::table('images')->select('year')->groupBy('year')->get();
- $shapes = DB::table('images')->select('shape')->groupBy('shape')->get();
- if ($brand !== 'leer') {
- $imagesQuery->where('brand', '=', $brand);
- }
- if ($year !== 'leer') {
- $imagesQuery->where('year', '=', $year);
- }
- if ($color !== 'leer') {
- $imagesQuery->where('color', '=', $color);
- }
- if ($style !== 'leer') {
- $imagesQuery->where('style', '=', $style);
- }
- if ($material !== 'leer') {
- $imagesQuery->where('material', '=', $material);
- }
- if ($shape !== 'leer') {
- $imagesQuery->where('shape', '=', $shape);
- }
- if ($year !== 'leer') {
- $imagesQuery->where('year', '=', $year);
- }
- if ($page == 'contest') {
- $imagesQuery->where('images.contest', '=', 'true');
- $brands->where('contest', 'true');
- $colors->where('contest', 'true');
- $styles->where('contest', 'true');
- $materials->where('contest', 'true');
- $years->where('contest', 'true');
- $shapes->where('contest', 'true');
- }
- if ($page == 'profile') {
- $imagesQuery->where('images.user_id', '=', $user_id);
- $user = User::find($user_id);
- }
- $images = $imagesQuery->paginate(12);
- return view($page)->with(compact('images', 'brands', 'colors', 'styles', 'materials', 'years', 'shapes', 'user'));
- }
- Route::get('/indexFilter', 'ImagesController@filter');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement