2012-05-28 4 views
6

Symfony2에서 Doctrine을 사용하여 레코드가 데이터베이스에 성공적으로 삽입되었는지 어떻게 확인할 수 있습니까? 컨트롤러해당 레코드가 Symfony2에 성공적으로 삽입되었는지 확인

내 행동은 내가 if 성명에서 무엇을 작성해야

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!"); 
    } 
} 

입니까?

답변

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')와 같은 다른 키가있는 플래시 메시지를 추가하고 나뭇 가지 템플릿에서 {% if app.session.hasFlash ('insert_failed') %}

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

+0

예 내가 해냈습니다 ... 빠른 응답을 주셔서 다시 한번 감사드립니다 :) –

관련 문제