2012-04-12 3 views
0

重複オブジェクトDoctrine2のgetResult()私は教義2 リポジトリ機能に奇妙なエラーが発生している

$query = $this->_em->createQuery('SELECT c FROM \Model\Entity\Cluster c 
            WHERE c.publisherid = :publisherid'); 
$query->setParameter("publisherid", (int)$publisher_id); 
var_dump($query->getResult()); 
var_dump($query->getArrayResult()); 

そして、我々は

オブジェクトの持っているもの:キー0-3と

array (size=8) 
    0 => 
    object(Model\Entity\Cluster)[**396**] 
     private 'psiteid' => int 215 
     private 'psiteclusterdate' => 
     object(DateTime)[371] 
      public 'date' => string '**2011-12-20** 00:00:00' (length=19) 
      public 'timezone_type' => int 3 
      public 'timezone' => string 'Europe/Moscow' (length=13) 
     private 'publisherid' => int 276 
     private 'views' => int 14657 
     private 'clicks' => int 6220 
     ... 

    1 => 
    object(Model\Entity\Psitecluster)[**396**] 
     private 'psiteid' => int 215 
     private 'psiteclusterdate' => 
     object(DateTime)[371] 
      public 'date' => string '**2011-12-20** 00:00:00' (length=19) 
      public 'timezone_type' => int 3 
      public 'timezone' => string 'Europe/Moscow' (length=13) 
     private 'publisherid' => int 276 
     private 'views' => int 14657 
     private 'clicks' => int 6220 
     ... 

行をこのオブジェクトを継承し(396)、他の行は第2のオブジェクトを除外する。

array (size=8) 
    0 => 
    array (size=22) 
     'psiteid' => int 215 
     'psiteclusterdate' => 
     object(DateTime)[367] 
      public 'date' => string '**2011-12-20** 00:00:00' (length=19) 
      public 'timezone_type' => int 3 
      public 'timezone' => string 'Europe/Moscow' (length=13) 
     'publisherid' => int 276 
     'views' => int 14657 
     'clicks' => int 6220 
     .... 

    1 => 
    array (size=22) 
     'psiteid' => int 215 
     'psiteclusterdate' => 
     object(DateTime)[396] 
      public 'date' => string '2011-12-21 00:00:00' (length=19) 
      public 'timezone_type' => int 3 
      public 'timezone' => string 'Europe/Moscow' (length=13) 
     'publisherid' => int 276 
     'views' => int 10166 
     'clicks' => int 4028 

すべての行を配列で異なっている:私は配列としてダンプ 。オブジェクトの何が問題なの?

+0

私は、生成されたSQL $ query-> getSql()を調べます。 – dimirc

+0

SQLは 'SELECT c0_.PSiteID AS PSiteID0、c0_.PSiteClusterDate AS PSiteClusterDate1、c0_.PublisherID AS PublisherID2、c0_.Views AS Views4、c0_.Clicks AS Clicks6、...クラスタc0_ FROM c0_.PublisherIDは=?'返しのように見えます通常の結果、配列 –

+0

のように結果も重複していますか? – dimirc

答えて

0

私は問題を解決しました。これはDoctrine2のバグです。ここでバグレポートを作成しましたhttp://doctrine-project.org/jira/browse/DDC-1780

あなたがプロジェクトで修正できます(Doctrineライブラリファイルを編集できる場合)。 追加するだけでforeachループで

if ($id[$fieldName] instanceof \DateTime) { 
    $id[$fieldName] = $id[$fieldName]->getTimestamp(); 
}` 

を追加してください。

関連する問題