2014-10-06 35 views
0

我得到的問題取相關實體數據時使用的findAll負載相關的數據(我嘗試加載從相關的實體屬性名):不能的findAll()

$repository = $this->getDoctrine()->getRepository('MyAwesomeBundle:Employee'); 

$employees = $repository->findAll(); 
foreach ($employees as $employee) { 
    echo $employee->getUser()->getUsername(); 
} 
die("not work -_-"); 

錯誤消息:FatalErrorException:錯誤:調用一個成員函數getUsername()在...

非對象上,但我使用findOne其他代碼工作正常:

$repository = $this->getDoctrine()->getRepository('MyAwesomeBundle:Employee'); 
$employee = $repository->findOneByCode($code); 
die("".$employee->getUser()->getUsername()); 

我的問題是如何加載$員工 - >的getUser() - >如果我使用findAll來加載所有數據,那麼在foreach中使用getUsername()?

回答

2

數據庫中有一個Employee,它沒有與其關聯的User

當加載一個,你正在加載一個誰擁有用戶關聯,但是當循環所有,你偶然發現誰沒有和那時,你的代碼失敗。

解決方法:找到Employee沒有關聯User並刪除它,或將User與它關聯。

+0

謝謝,你節省了我很多時間:D – 2014-10-06 09:59:41