我有一条看起来像这样的路线-route / {parameter},提交表单后需要更改参数。
我尝试使用redirectToRoute,但是它创建了新的URL以及其他一些我不需要的形式传递的参数。
所以我很想问你是否有某种方法可以重定向到新的URL,该URL具有我通过表单中的select选择的唯一参数。
非常感谢您的回复。
编辑:
我将分享更多实际信息。这是我的表单控制器的样子:
$form = $this->createFormBuilder()
->setMethod("get")
->add('category', ChoiceType::class, [
'choices' => [
'Všechny kategorie' => 'vsechny-kategorie',
'Automobilový průmysl' => 'automobilovy-prumysl',
'Stavebnictví' => 'stavebnictvi',
'Elektronika a elektrotechnika' => 'elektronika-a-elektrotechnika',
'Gastronomie' => 'gastronomie',
'Lesnictví' => 'lesnictvi',
'Potravinářský průmysl' => 'potravinarsky-prumysl',
'IT technologie' => 'it-technologie',
'Logistika' => 'logistika',
'Strojírenství' => 'strojirenstvi',
'Zdravotnictví' => 'zdravotnictvi'
],
'label' => 'Kategorie:'
])
->add('send', SubmitType::class, ['label' => 'Test'])
->getForm();
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
$category = $data['category'];
return $this->redirectToRoute('jobs', [
'jobs' => $pagination,
'categoryForm' => $form->createView(),
'category' => $category,
]);
}
答案 0 :(得分:2)
您应该可以使用redirectToRoute
,但请确保传递您要动态设置为数组的参数:
// in your controller action:
return $this->redirectToRoute('post_form_route', ['parameter' => $parameter]);
如果这对您不起作用,我将仔细检查您的路线定义,并确保正确传递了路线的名称和预期的URL参数。
答案 1 :(得分:0)
您可以尝试:
if($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
$category = $data['category'];
return $this->redirectToRoute('route', [
'parameter' => $form->getData()->getCategory()
]);
}
return $this->redirectToRoute('jobs', [
'jobs' => $pagination,
'categoryForm' => $form->createView(),
]);