/** * @param int $from * @param int $size * @return SearchResultSlice */ public function getDrinks($from = 0, $size = 20) { $criteria = new SearchEngine\Criteria($from); $criteria->changeSize($size); $criteria->updateRequiredTaste((new TasteBuilder())->sweet()->buildTaste()); return $this->searchEngine->search($criteria); }
public function similarRecipesAction($slug, $size) { $recipe = $this->get('my_drinks.recipes')->findBySlug($slug); if (is_null($recipe)) { throw new NotFoundHttpException(); } $criteria = new Criteria(); $criteria->similarTo($recipe->getName()); $criteria->changeSize((int) $size); $results = $this->get('my_drinks.search_engine')->search($criteria); return $this->render(':recipe:similarRecipes.html.twig', ['recipe' => $recipe, 'results' => $results]); }
public function indexAction(Request $request) { $form = $this->get('form.factory')->createNamed('', new SearchType()); $form->handleRequest($request); $criteria = new Criteria((int) $request->query->get(self::PARAM_START, 0)); $criteria->changeSize(20); if ($form->isValid()) { $criteria->decorate(new SearchCriteriaDecorator($form)); } else { if ($form->isSubmitted()) { $ingredients = $form->get('ingredients')->getData(); $criteria->mustContainIngredients(is_null($ingredients) ? [] : $ingredients); } } $drinks = $this->get('my_drinks.search_engine')->search($criteria); return $this->render('search/index.html.twig', ['results' => null, 'drinks' => $drinks]); }