6

symfony2 で Doctrine を使用してレコードがデータベースに正常に挿入されたかどうかを確認するにはどうすればよいですか?

コントローラーでの私のアクションは

public function createAction(){
    $portfolio = new PmPortfolios();
    $portfolio->setPortfolioName('Umair Portfolio');
    $em = $this->getDoctrine()->getEntityManager();
    $em->persist($portfolio);
    $em->flush();
    if(){
         $this->get('session')->setFlash('my_flash_key',"Record Inserted!");
    }else{
         $this->get('session')->setFlash('my_flash_key',"Record notInserted!");
    }
}

陳述書には何を書けばいいifですか?

4

1 に答える 1

23

try / catch次のように、コントローラーをブロックでラップできます。

public function createAction() {
    try {
        $portfolio = new PmPortfolios();
        $portfolio->setPortfolioName('Umair Portfolio');
        $em = $this->getDoctrine()->getEntityManager();
        $em->persist($portfolio);
        $em->flush();

        $this->get('session')->setFlash('my_flash_key',"Record Inserted!");

    } catch (Exception $e) {
        $this->get('session')->setFlash('my_flash_key',"Record notInserted!");
    }
}

挿入が失敗すると、例外がスローされてキャッチされます。おそらく、例外を説明する$e->getMessage()and/orを呼び出して、catch ブロック内のエラー メッセージをログに記録することもできます。$e->getTraceAsString()

于 2012-05-28T21:32:52.903 に答える