Ошибки отображения формы Symfony из метода проверки

Поскольку я привык к Laravel, я попытался проверить формы в отдельном методе. Но я не знаю, как перенаправить назад и отобразить ошибки. Основная проблема — отображение ошибок. Наилучший сценарий был бы, если бы я мог установить ошибки из метода валидации и позволить взять на себя обработку ошибок формы по умолчанию в Symfony.

Я мог бы быть совершенно не прав с моим подходом, если так, то я надеюсь, что кто-то может направить меня в правильном направлении.

Я сделал метод для создания формы и визуализации ее в веточку

/**
* @Route("/form")
* @Template("Bundle::form.html.twig")
* @Method("GET")
*/
public function formAction(Request $request)
{
$state = new State();

$form = $this->createFormBuilder($state)
->add('name', TextType::class)
->add('save', SubmitType::class, array('label' => 'Submit'))
->getForm();

return [
'form' => $form->createView(),
];
}

И еще один метод для проверки формы и перенаправления обратно при ошибке

/**
* @Route("/form")
* @Method("POST")
*/
public function formAction(Request $request)
{
$state = new State();

$form = $this->createFormBuilder($state)
->add('name', TextType::class)
->add('save', SubmitType::class, array('label' => 'Submit'))
->getForm();

$form->handleRequest($request);

if ($form->isSubmitted()) {
if (!$form->isValid()) {
// How to pass errors?
return $this->redirectTo('/form');
}

// ... Store State
}

// ...
}

1

Решение

1) Проверить этот из

2) если вы действительно хотите добавить ошибку с вашего контроллера:

use Symfony\Component\Form\FormError;
// ...
$form->get('name')->addError(new FormError('Wrong name you fool :p'));
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]