2013-07-18 81 views
0

當我從數據庫中檢索用戶實體時,密碼屬性顯示出來。我想特別不顯示錶中的某些屬性。像密碼一樣。在doctrine2中有沒有這樣的配置?在doctrine2查詢中隱藏特定列

我正在使用註釋。 :)

回答

0

據我所知沒有「過濾器」來取出時只取消某些屬性。

創建實體倉庫裏的自定義查詢並獲取只有你真正需要的字段:

UserRepository

public function findAllUserNamesAndAddresses() 
{ 
    return $this->createQueryBuilder('user') 
     ->select(array('user.name','user.address')) 
     ->getQuery() 
     ->getResult() 
    ; 
} 
1

正如nifr說,我選擇的是我真正需要的。 在DQL中,如果選擇數據user.name,user.address,它將取出連接的上下文,並將數據放在數組的末尾。所以,爲了解決這個問題,並且繼續保持JOIN的一致性,解決方案就是創建一個PARTIAL。因此,代碼是這樣的:當

SELECT project, pm, pu, dfp, df, collection, partial admin.{id}, admetas, cm 

當然,這僅僅是SELECT語句,但區別在於,管理員{ID}堅持上下文和數組不「跳出」,你做一個getArrayResult();