2012-01-25 9 views
0

私は、データベースにこのデータを持っている:ドクトリン2.1 - ネイティブクエリ

テーブルを:

game_id1 | game_id2 
    3  |  2 
    4  |  2 

をgames_relatedそして私は、このデータをtakieするためにこのコードを使用しています:

$rsm = new Doctrine\ORM\Query\ResultSetMapping; 
$rsm->addEntityResult('Game', 'g1'); 
$rsm->addEntityResult('Game', 'g2'); 
$rsm->addFieldResult('g1', 'id', 'game_id1'); 
$rsm->addFieldResult('g2', 'id', 'game_id2'); 
$result = $this->db->createNativeQuery("SELECT game_id1, game_id2 FROM games_related WHERE :game IN (game_id1, game_id2)", $rsm)->setParameter('game', $game->getId())->getResult(); 

なぜvar_dump($result);$game->getId() = 2のときにarray(0) { }が返されますか?あなたのGameエンティティがフィールド$idを持っていると仮定すると、

答えて

1

、これは次のようになります。 ResultSetMapping#addFieldResult()方法は、あなたが

$rsm->addFieldResult('g1', 'game_id1', 'id'); 

addFieldResult()

を呼び出すことを期待します
関連する問題