2012-05-03 24 views
4

我想映射一個sql-view與Doctrine2如何使用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; 
} 

我創建實體MessageCenter與getter和setter,但我的輸出是:

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

我嘗試使用NativeSQL ... – Ephraim

+1

btw:在使用它之前,您正在覆蓋$ rsm .. – wolxXx

回答

1

(由OP在aq question中的回答編輯。轉錄爲社區wiki答案。見Question with no answers, but issue solved in the comments (or extended in chat)

的OP寫道:

我解決了!!!!

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(); 
} 

此返回的數組。完善!

相關問題