/**
  * Display a listing of products.
  *
  * @param Request $request
  * @return Response
  */
 public function index(Request $request)
 {
     $search = $request->all();
     $search['q'] = isset($search['q']) ? trim($search['q']) : '';
     $search['cat'] = isset($search['cat']) ? $search['cat'] : '';
     $search['published'] = isset($search['published']) ? [$search['published']] : '';
     $search['published'] = $search['published'] == '' ? '' : $search['published'][0] == '' ? '' : $search['published'];
     // dd($search);
     //$this->categoryRepository->getParents();
     $products = $this->productRepository->getAll($search);
     return View('admin.products.index')->with(['products' => $products, 'search' => $search['q'], 'categorySelected' => $search['cat'], 'selectedStatus' => $search['published'] ? $search['published'][0] : '']);
 }
 public function search(Request $request, $category = null)
 {
     $search = array_add($request->all(), 'published', [1, 4]);
     //if ($search['q'] == '') return view('categories.index');
     if (isset($search['q']) && $search['q'] != '' || !$category) {
         $products = $this->productRepository->getAll($search);
     } else {
         list($products, $category) = $this->productRepository->findByCategory($category);
     }
     $q = isset($search['q']) ? $search['q'] : '';
     return view('products.index')->with(compact('products', 'q', 'category'));
 }