2012-04-12 45 views
0

我的學說2 庫函數有一個奇怪的錯誤Doctrine2的getResult()重複的對象

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

而且我們有什麼

對象:

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 
     ... 

行與鍵0-3 dublicate這個對象(396)和其他行dublicate第二個對象。 當我轉儲爲陣列:

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 2012-04-13 08:11:39

+0

SQL看起來像'SELECT c0_.PSiteID AS PSiteID0,c0_.PSiteClusterDate AS PSiteClusterDate1,c0_.PublisherID AS PublisherID2,c0_.Views AS Views4,c0_.Clicks AS Clicks6,... FROM Cluster c0_ WHERE c0_.PublisherID =?'一個正常的結果,像數組 – 2012-04-16 03:48:03

+0

一樣,結果也是重複的? – dimirc 2012-04-16 04:01:28

回答

0

我解決了一個問題。這是Doctrine2中的一個錯誤。我在這裏創建了錯誤報告http://doctrine-project.org/jira/browse/DDC-1780

你可以在你的項目中修復(如果你可以編輯Doctrine庫文件)。 只需添加

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

在foreach循環中。