symfony2如何定義錯誤頁!
我想大声告诉你
我想大声告诉你 2017-05-16 16:45:16
0
2
796

在使用doctrine2,定義了公司名唯一,再次提交時提示出錯.如何重新定義這個出錯的頁面.

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

全部回覆(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裡面. 最重要的是需要清除快取才有效

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!