2012-05-28 29 views
6

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

コントローラでの私の行動は

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文で何を書くべきでしょうか?

答えて

19

次のような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()および/または$e->getTraceAsString()を呼び出すことによって、catchブロック内にエラーメッセージを何らかの形で記録することもできます。

+0

挿入の成功と失敗に応じてビュー内に異なるdivを表示するにはどうすればよいですか? –

+0

setFlash( 'insert_failed'、 'Your message')のような別のキーを持つフラッシュメッセージを追加し、twigテンプレートの中で{%if app.session.hasFlash( 'insert_failed')%}

{{ app.session.flash('insert_failed') }}
{%endif% } –

+0

はい私はそれをしました...クイックレスポンスにもう一度感謝します:) –

関連する問題