Witam.
Mam w TaskController dwie metody w których generuje formularz wyszukiwarki, nad listą zadań.
Formularz generuje w dwóch metodach. showAll() i showAllFromCat()
Jedna z tych metod.
#[Route('/tasks', name: 'app_task_show_list')]
public function showAll(): Response
{
$tasks = $this->taskRepository->findAll();
$formTaskSearch = $this->createForm(TaskSearchType::class, null, [
'action' => $this->generateUrl('app_task_search'),
'method' => 'GET',
]);
return $this->renderForm('task/list.html.twig', [
'tasks' => $tasks,
'formTaskSearch' => $formTaskSearch
]);
}
Obsługą wyszukiwarki zajmuje się inne metoda, chociaż nie wiem czy dobrze to obmyśliłem:
#[Route('/tasks/search/', name: 'app_task_search')]
public function search(Request $request)
{
$search_phraze = $request->get('task_search')['title'];
$search_in_description = $request->get('search_in_description');
$formTaskSearch = $this->createForm(TaskSearchType::class, null, [
'action' => $this->generateUrl('app_task_search'),
'method' => 'GET',
]);
$formTaskSearch->handleRequest($request);
if ($formTaskSearch->isSubmitted() && $formTaskSearch->isValid()) {
//tutaj już isSubmitted() zwraca false.
$data = $formTaskSearch->getData();
}
//wyszukuje bez walidacji
$tasks = $this->taskRepository->findTasksFromRequest($request, $search_in_description);
return $this->renderForm('task/list.html.twig', [
'tasks' => $tasks '', 'header' => 'Szukaj: '.$search_phraze,
'search_phraze' => $search_phraze,//podstawiam wartości w formularzu.
'search_in_description' => $search_in_description,
'formTaskSearch' => $formTaskSearch
]);
}
Nie można formularz obsługiwać w innej metodzie? Dlaczego to isSubmitted() zwraca false i co z tym zrobić?
Link do githuba z aplikacją:
https://github.com/Lechu85/10_todo_app