From 0a0730479e92eafa08ce58964a8f1db8f46abf83 Mon Sep 17 00:00:00 2001 From: horus Date: Tue, 13 Feb 2018 20:19:46 +0100 Subject: Implements basic search with LIKE query. (website) --- site/app/Http/Controllers/SearchController.php | 80 ++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 site/app/Http/Controllers/SearchController.php (limited to 'site/app') diff --git a/site/app/Http/Controllers/SearchController.php b/site/app/Http/Controllers/SearchController.php new file mode 100644 index 0000000..bb79bae --- /dev/null +++ b/site/app/Http/Controllers/SearchController.php @@ -0,0 +1,80 @@ +cookie("sort"); + } + switch ($sort_by) { + case("price"): + $sort_by = "discounted_price"; + break; + case("discounted_price"): + $sort_by = "discounted_price"; + break; + case("name"): + $sort_by = "name"; + break; + case("shop"): + $sort_by = "shop"; + break; + case("procent"): + $sort_by = "procent"; + break; + case("time"): + $sort_by = "created_at"; + break; + case("created_at"): + $sort_by = "created_at"; + break; + default: + $sort_by = "created_at"; + break; + } + Cookie::queue(Cookie::make('sort', $sort_by, 60*24)); + + $order_by = $request->input("order"); + if ( is_null($order_by) ) { + $order_by = $request->cookie("order"); + } + if ( "desc" != $order_by ) { + $order_by = "asc"; + } + Cookie::queue(Cookie::make('order', $order_by, 60*24)); + + $query = Input::get("q"); + $q = "%" . $this->escapeLike($query) . "%"; + $data = DB::table('all_view')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orderBy($sort_by, $order_by)->simplePaginate(20); + #$data = DB::table('whisky_view')->orderBy('procent', 'DESC')->limit(100)->simplePaginate(20); + #var_dump($data); exit; + + return view('search', ['data' => $data, 'search_phrase' => $query ]); + } + + private function escapeLike($string) { + $search = array('%', '_'); + $replace = array('\%', '\_'); + return str_replace($search, $replace, $string); + } + +} -- cgit v1.2.3