Last Updated: February 25, 2016
·
12.88K
· charlybr

Symfony2: Catch Doctrine exception in the controller and set flash message

if ($form->isValid()) {
    try {
        $em = $this->getDoctrine()->getManager();
        $em->persist($entity);
        $em->flush();
    } catch(\Doctrine\DBAL\DBALException $e) {
        $this->get('session')->getFlashBag()->add('error', 'Can\'t insert entity.');
        return $this->redirect($this->generateUrl('your_route'));
    }

    return $this->redirect($this->generateUrl('your_route_show', array('id' => $entity->getId())));
}

Have a fresh tip? Share with Coderwall community!

Post
Post a tip
Did you know?

PHP applications still send a browser full of JavaScript. Hardening the server does not inventory the payment, analytics, and plugin scripts that run after the HTML is delivered.

Security insights from Cside