У меня проблема с моим поиском, возможно, я не понимаю принципа. Поэтому у меня есть метод, показывающий продукты по категориям, и я добавил поиск на эту страницу для продуктов фильтра по цене. Мой метод:Получить данные из формы в symfony2
public function showCategoryAction($id, $page){
$em = $this->getDoctrine()->getManager();
$repositoryProduct = $em->getRepository('ShopDesktopBundle:Product');
$aFilter = array();
$form = $this->get('form.factory')->createNamedBuilder('search', 'form', null, array(
'csrf_protection' => false,
))->setMethod('GET')
->add('minimPrice', 'text')
->add('maxPrice', 'text')
->getForm();
$request = $this->getRequest();
$form->handleRequest($request);
$data = $form->getData();
print_r($data);
//Search products
$aProducts = $repositoryProduct->getProductsOrderByDateDesc($id,null,$aFilter);
if (!$aProducts) {
throw $this->createNotFoundException('Products not found.');
}
$category = $em->getRepository('ShopDesktopBundle:Category')->findOneById($id);
if (!$category) {
throw $this->createNotFoundException('Category not found.');
}
//Create pagination
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$aProducts,
$page,
3
);
//Send data to view
return $this->render('ShopDesktopBundle:Category:category.html.twig',array(
'category' => $category,
'pagination' => $pagination,
'form' => $form->createView()
));
}
Мое мнение:
<form action="{{ path('show_product_category',{ 'id':category.getId(), 'name':category.getCategoryLink() }) }}" method="get" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit" class="btn btn-primary marg-left-20" value="Search"/>
</form>
Проблема заключается в том, что мой $ вар пуст. Помоги мне, пожалуйста. Что я делаю неправильно? Thx заблаговременно
Вы должны handleRequest с $ формы, чтобы получить данные в нем, проверьте Symfony документации – Svetoslav