diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 07999b7..e112a46 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -11,10 +11,11 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; +use Illuminate\Support\Facades\App; use App\Http\Requests\Api\SearchRequest; use App\Http\Controllers\Api\SearchController as ApiSearchController; - +use Illuminate\Support\Facades\Log; class SearchController extends Controller { public function index(SearchRequest $request) @@ -22,7 +23,7 @@ public function index(SearchRequest $request) $items = $this->post($request); $filters = $this->get_or_make_filters($request); - return view('search', ['fitlers' => $filters,'items' => $items]); + return view('search', ['filters' => $filters,'items' => $items]); } public function post(SearchRequest $request) { @@ -36,21 +37,26 @@ public function post(SearchRequest $request) { public function get_or_make_filters(SearchRequest $request) { // Closure so we don't have to edit this multiple places if things change $make_filters = function() { - return view('components.search-results', ['sections' => [ + return view('components.filters', ['sections' => [ 'categories' => Category::cached()->sortBy('name'), 'brands' => Brand::cached()->sortBy('name'), 'features' => Feature::cached()->sortBy('name'), 'colors' => Color::cached()->sortBy('name'), 'tags' => Tag::cached()->sortBy('name'),] - ]); + ])->render(); }; + // Check if there are any filters set. If not, we can use cached renders. - if ($request) { + // 'search' doesn't count because it doesn't affect the filter view. + $params = $request->all(); + $count = count($params); + + if ($count == 0 || ($count == 1 && array_key_exists('search', $params))) { $locale = App::getLocale(); - $filters = Cache::tags(['filters'])->get($locale); + $filters = cache()->tags(['filters'])->get($locale); if (!$filters) { $filters = $make_filters(); - Cache::tags(['filters'])->forever($locale, $filters); + cache()->tags(['filters'])->forever($locale, $filters); return $filters; } else { return $filters; diff --git a/resources/views/search.blade.php b/resources/views/search.blade.php index 37d8dd1..5cd0c7e 100644 --- a/resources/views/search.blade.php +++ b/resources/views/search.blade.php @@ -14,7 +14,7 @@
- {{ $filters }} + {!! $filters !!}
@@ -24,7 +24,7 @@
- {{ $items }} + {!! $items !!}