2012-05-03 3 views
4

Doctrine2으로 SQL-Map을 매핑하고 싶습니다.Doctrine 2로 VIEW를 관리하는 방법은 무엇입니까?

이보기

내가 테이블처럼 매핑 할 뷰를 생성하는 SQL을 재 작성없이 보여줄 것 통계를 포함하지만, 스키마 뷰를 삭제하고 테이블을 만들고 업데이트하는 TEMPTABLE입니다

나는 NativeSQL으로도 시도

...

public function getMessages(\Project\Bundle\MyBundle\Entity\User $user) { 
    $rsm = new \Doctrine\ORM\Query\ResultSetMapping(); 
    $rsm->addEntityResult('MessageCenter', 'v'); 
    $rsm->addFieldResult('v', 'user_id', 'user_id'); 
    $rsm->addFieldResult('v', 'tot', 'tot'); 
    $rsm->addFieldResult('v', 'read', 'read'); 
    $rsm->addFieldResult('v', 'to_read', 'to_read'); 
    $rsm->addFieldResult('v', 'stored', 'stored'); 
    $rsm->addFieldResult('v', 'spam', 'spam'); 

    $q = "SELECT * FROM message_stats_view WHERE user_id = ?"; 
    $rsm = new \Doctrine\ORM\Query\ResultSetMapping; 
    $query = $this->getEntityManager()->createNativeQuery($q, $rsm); 
    $query->setParameter(1, $user->getId()); 
    echo $query->getSQL(); 
    var_dump($query->execute()); 
    exit; 
} 

나는 getter 및 setter와 엔티티 MessageCenter을 만들 수 있지만 내 출력은 다음과 같습니다

,536,
SELECT * FROM message_stats_view WHERE user_id = ? 
array 
    empty 
+0

NativeSQL을 사용해보십시오 ... – Ephraim

+1

btw : 사용하기 전에 $ rsm을 덮어 쓰고 있습니다. – wolxXx

답변

1

(질문에 OP 질문에 답합니다. 커뮤니티 위키 답변에 쓰여졌습니다. Question with no answers, but issue solved in the comments (or extended in chat))

영업 쓴 참조 :

내가 해결 !!!!

public function getCentroMessaggi(\Project\Bundle\MyBundle\Entity\User $user) { 
    $connection = $this->getEntityManager()->getConnection(); 
    $q = "SELECT * FROM message_stats_view WHERE user_id = :id"; 
    $stmt = $connection->executeQuery($q, array('id' => $user->getId())); 
    return $stmt->fetch(); 
} 

는이 배열을 반환한다. 완전한!