So definieren Sie eine Fehlerseite in Symfony2!
我想大声告诉你
我想大声告诉你 2017-05-16 16:45:16
0
2
812

Bei Verwendung von Doctrine2 und der Definition eines eindeutigen Firmennamens erscheint beim erneuten Absenden eine Fehlermeldung. So definieren Sie diese Fehlerseite neu.

我想大声告诉你
我想大声告诉你

Antworte allen(2)
迷茫

Doctrine 2是一个独立的第三方库,封装的是PDO,PDO遇到唯一性冲突,扔出的是一个PDOException。

默认配置下,开发环境的出错页面,也就是catch了这个PDOException,输出Message而已。

重新定义Symfony 2的报错页面,有两种办法:

(一)建一个app/Resources/TwigBundle/views/Exception/error.html.twig,按自己需要进行修改。

模板里有statustext,statuscode等数据可以用。

(二)或者就是用Event,监听kernel.exception事件:

use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
use Symfony\Component\HttpFoundation\Response;

public function onKernelException(GetResponseForExceptionEvent $event)
{
    $exception = $event->getException();

    // 你已经获得了Exception:可以针对性地写逻辑

    $response = new Response();
    $event->setResponse($response); // 如果你在event里设置了response,这个response就会返回给用户

    // ...
}

http://symfony.com/doc/current/book/internals.html#kernel-kernel-exception

黄舟

Symfony的The Book的模板里面已经写的很清楚了,会先查找app/Resources下是否有这个模板,没有才去Bundle里面. 最重要的是需要清除缓存才有效

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage