LogansUA
4/10/2017 - 11:02 AM

Symfony forms detailed error output

Symfony forms detailed error output

Formatted form fields error message

Example of showing field label with error message

<?php

namespace AcmeBundle\Admin\Filter;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class AcmeController extends Controller
{
    public function acmeAction(Request $request)
    {
        $form = $this->createForm('app.acme.form_type');
        $form->handleRequest($request);

        if ($form->isValid()) {
            ...
        } else {
            // Get all form errors including field errors
            $errors = $form->getErrors(true);

            foreach ($errors as $error) {
                // Get error field
                $origin = $error->getOrigin();

                // Get field label option
                $label = $origin->getConfig()->getOption('label');

                // Formatted output of error
                $this->addFlash('alert-error', sprintf('%s - %s', $label, $error->getMessage()));
            }

        }
        ...
    }
}