Я пишу три простую форму. Они все одинаковы, за исключением части после проверки проверки, поэтому я решил создать вид «шаблона», содержащий весь код до проверки, если инструкция.Переменная в названии маршрута
Эти три функции содержат, таким образом, только код, отвечающий за правильную обработку формы.
Функция шаблона выглядит вроде как это:
public function templateAction($formName) {
$form = $this->createForm(new {$formName.'Type'}() new $formName());
$request = $this->getRequest();
if($request->getMethod() == 'POST') {
$form->bind($request);
if($form->valid()) {
$this->{'set'.$formName}($form);
return array();
}
}
}
Теперь, имея Foo
форму, передавая ее имя (Foo) в качестве параметра, я получаю форму вынесенное на основе только на его имя, и соответствующие частные методы, содержащие это имя.
Вопрос заключается в том - как я могу использовать $this->redirect()
функцию, чтобы вызвать этот метод «шаблон» и передать правильный параметр?
/**
* @Route("/FooController/Template/{formName}", name="/FooController/Template/{formName}")
*/
Это не работает - С.Ф. выдает ошибку, что маршрут не был найден ... Я также попробовал некоторые другие комбинации, но никто не работал ... как я должен справиться с этим?
Является ли эта «шаблонная» форма способ получения o.k.? Я думал, что это может повторить повторения, но что, если бы у меня был один метод, который должен иметь другой код перед частью проверки?
Кроме того, есть ли способ отделить форму от контроллера и поместить ее в другое место?