2014-10-06 57 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