Объединяем вывод ошибок в 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>

С помощью такого простого способа можно сгруппировать вывод всех ошибок. Возможно, вы делаете как-то по другому. Буду рад выслушать ваш способ в комментариях.

 

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: