2012-05-03 6 views
4

Я хотел бы сопоставить sql-view с Doctrine2.Как управлять ВИДОМ с Доктриной 2?

Эта точка зрения является TempTable, содержащий некоторые статистические данные, которые показывают без переписывания SQL, который генерирует вид

Я пытаюсь отобразить как таблица, но обновление схемы уронить вид и создать таблицу

стараюсь также с 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 с геттер и сеттер, но мой вывод:

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

Я пытаюсь использовать NativeSQL ... – Ephraim

+1

Кстати: вы переписываете $ rsm перед его использованием. – wolxXx

ответ

1

(Отвечено OP в вопросе редактирования. Переписывается в ответ на wiki сообщества. См 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(); 
} 

Это возвращает массив. ИДЕАЛЬНО!