2016-01-15 54 views
0

我想检查当前用户是否已经有当前日期的记录。用户实体有很多Timerecord,Timerecord有一个用户。到目前为止, 这两个实体位于两个不同的包获取相关记录一对多关系Symfony2

Project 
     UserBundle 
     TimerecordBundle 

控制器

$user = $this->container->get('security.context')->getToken()->getUser(); 
     $userr = $user->getUsername(); 
     $alreadyLoggedIn = $em->getRepository('EmployeeBundle:Timerecord')->findAlreadyTimedInToday($userr); 
     var_dump($alreadyLoggedIn); 
     die(); 

程序存储库

public function findAlreadyTimedInToday($userr) 
{ 

    return $this 
     ->createQueryBuilder('t') 
     ->select('u.username') 
     ->from('User u') 
     ->join('u.Timerecord t') 
     ->where('u.username LIKE :currentuser') 
     ->setParameter('currentuser',$userr) 
     ->getQuery() 
     ->getSingleResult() 
    ;  
} 

我得到这个例外

警告:缺少论据2为Doctr ine \ ORM \ QueryBuilder :: from()

如何在这种情况下获取相关用户?

回答

0

from零件的别名应赋予第二个参数。

改变你的方法是:

public function findAlreadyTimedInToday($userr) 
{ 
    return $this 
     ->createQueryBuilder('t') 
     ->select('u.username') 
     ->from('User', 'u') 
     ->join('u.Timerecord', 't') 
     ->where('u.username LIKE :currentuser') 
     ->setParameter('currentuser', $userr) 
     ->getQuery() 
     ->getSingleResult() 
    ;  
} 
+0

哦,我忘了,用户和timerecord是在不同的包,像财产以后和userbundle它timerecordbundle..Is IT相关的查询也是这样吗? - >来自('Project \ UserBundl:User','u') –

相关问题