Объединяем вывод ошибок в Symfony 4
Иногда возникает ситуация, когда хочется сделать вывод всех ошибок формы в одном месте. Конечно же, речь пойдет об интересном фреймворке Symfony 4.
Пример контроллера RegistrationController:
<?php namespace App\Controller; use App\Form\Model\RegistrationModel; use App\Form\RegistrationType; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Annotation\Route; class RegistrationController extends Controller { /** * @Route("/register", name="security_register") */ public function registerAction(Request $request) { $form = new RegistrationModel(); $form = $this->createForm(RegistrationType::class, $form); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { // Здесь какие-то действия при успешной отправке данных } return $this->render( 'registration/register.html.twig', array( 'register_form' => $form->createView(), ) ); } }
Пример вывода ошибок в шаблоне register.html.twig:
<form action="{{ path('security_register') }}" method="post"> {# ... #} {% if not register_form.vars.valid %} <ul> {% for error in register_form.vars.errors.form.getErrors(true) %} <li>{{ error.message }}</li> {% endfor %} </ul> {% endif %} {# ... #} </form>
С помощью такого простого способа можно сгруппировать вывод всех ошибок. Возможно, вы делаете как-то по другому. Буду рад выслушать ваш способ в комментариях.