function it_build_parameters_with_sorting() { $criteria = new Criteria(0, false); $criteria->addQuery("drink"); $criteria->sortBy('name'); $this->createParameters($criteria)->shouldReturn(['index' => ElasticSearch::INDEX, 'type' => 'recipe', 'body' => ['from' => 0, 'size' => 10, 'query' => ['multi_match' => ['query' => $criteria->getQuery(), "type" => "phrase_prefix", 'fields' => ["description.text^2", "name^4"]]], 'sort' => ['name' => ['order' => Criteria::SORT_DESC]]]]); }
public function createAction(Request $request) { $form = $this->createForm(new CreateRecipeType(), new CreateNewRecipeCommand()); $searchForm = $this->createForm(new AdminSearchType()); $form->handleRequest($request); $searchForm->handleRequest($request); if ($form->isValid()) { $this->get('my_drinks.command_bus')->handle($form->getData()); $slug = $this->get('my_drinks.slug_generator')->generateFrom($form->get('name')->getData()); return $this->redirect($this->generateUrl('admin_recipe_update_description', ['slug' => $slug])); } $criteria = new Criteria((int) $request->query->get('start', 0), false); $criteria->sortBy('name.raw', Criteria::SORT_ASC); if ($searchForm->isValid()) { $criteria->addQuery($searchForm->get('name')->getData()); } $results = $this->get('my_drinks.search_engine')->search($criteria); return $this->render('admin/recipe/create.html.twig', ['search' => $searchForm->createView(), 'form' => $form->createView(), 'results' => $results]); }