/** * Display a listing of the resource. * * @param Request $request * @return Response */ public function search(Request $request) { $inquiries = Inquiry::query(); $search['car_id'] = $request->has('car_id') && $request->get('car_id') ? $request->get('car_id') : false; $search['model'] = $request->get('model'); $search['year_from'] = $request->get('year_from'); $search['year_to'] = $request->get('year_to'); $search['city_id'] = $request->get('city_id'); $search['metro'] = $request->has('metro') && $request->get('metro') ? $request->get('metro') : false; $search['search_info'] = $request->get('search_info'); if ($search['car_id']) { foreach ($search['car_id'] as $key => $value) { if (!$value) { unset($search['car_id'][$key]); } } if ($search['car_id']) { $inquiries->whereIn('car_id', $search['car_id']); } } if ($search['model']) { $inquiries->where('model', $search['model']); } if ($search['year_from']) { $inquiries->where('year_from', '>=', $search['year_from']); } if ($search['year_to']) { $inquiries->where('year_to', '<=', $search['year_to']); } if ($search['city_id']) { $inquiries->where('city_id', $search['city_id']); } if ($search['metro']) { $inquiries->where('metro', $search['metro']); } if ($search['search_info']) { // Расширенный поиск $capacity = config('vars.car_info.capacity'); $searchMore['price_from'] = $request->get('price_from') ?: false; $searchMore['price_to'] = $request->get('price_to') ?: false; $searchMore['gear'] = $request->get('gear') ?: false; $searchMore['transmission'] = $request->get('transmission') ?: false; $searchMore['engine'] = $request->get('engine') ?: false; $searchMore['rudder'] = $request->get('rudder') ?: false; $searchMore['color'] = $request->get('color') ?: false; $searchMore['run'] = $request->get('run') ?: false; $searchMore['capacity_from'] = $request->get('capacity_from') ? $capacity[$request->get('capacity_from')] : false; $searchMore['capacity_to'] = $request->get('capacity_to') ? $capacity[$request->get('capacity_to')] : false; $searchMore['state'] = $request->get('state') ?: false; $searchMore['owners'] = $request->get('owners') ?: false; if ($searchMore['price_from']) { $inquiries->where('price_from', '>=', $searchMore['price_from']); } if ($searchMore['price_to']) { $inquiries->where('price_to', '<=', $searchMore['price_to']); } if ($searchMore['gear']) { $inquiries->where('gear', $searchMore['gear']); } if ($searchMore['transmission']) { $inquiries->where('transmission', $searchMore['transmission']); } if ($searchMore['engine']) { $inquiries->where('engine', $searchMore['engine']); } if ($searchMore['rudder']) { $inquiries->where('rudder', $searchMore['rudder']); } if ($searchMore['color']) { $inquiries->where('color', $searchMore['color']); } if ($searchMore['run']) { $inquiries->where('run', '<=', $searchMore['run']); } if ($searchMore['capacity_from']) { $inquiries->where('capacity_from', '>=', $searchMore['capacity_from']); } if ($searchMore['capacity_to']) { $inquiries->where('capacity_to', '<=', $searchMore['capacity_to']); } if ($searchMore['state']) { $inquiries->where('state', '>=', $searchMore['state']); } if ($searchMore['owners']) { $inquiries->where('owners', '>=', $searchMore['owners']); } } $searchResult['found'] = $inquiries->with('car', 'user', 'city')->get(); $searchResult['suggest'] = []; if ($request->ajax()) { return response()->json($searchResult); } return $searchResult; }