/** * Recherche avancée * * @ApiDoc( * resource = true, * description = "Recherche avancée", * statusCodes = { * 200 = "Returned when successful", * 404 = "Returned when the data is not found" * } * ) * @Route("/api/search/advancedSearch",name="nicetruc_advanced", options={"expose"=true}) * @Rest\View() * @Method({"POST"}) */ public function searchAdvancedAction(Request $request) { $elasticManager = $this->get('fos_elastica.manager'); $advancedSearch = new AdvancedSearch(); $advancedSearch->handleRequest($request); $voitures = $elasticManager->getRepository('AppBundle:Voiture')->searchAdvanced($advancedSearch); $view = View::create(); if ($voitures) { $data = array('data' => array('voitures' => $voitures)); $view->setData($data)->setStatusCode(200); } else { $view->setData(null)->setStatusCode(404); } return $view; }