好的,所以我有一个查询,我已经研究并研究了如何让它工作,而对于我的生活,我不能!...也许我只是做错了,我发现的信息很少..
我有一个名为 timeclock setup.. 的表,其中有一个字段:noteBy_id,它是记录所属用户的 id...
我现在需要做的是系统中事物的管理方面。我预计会有超过 1 家公司使用这个时钟系统,因此我需要根据公司 ID 过滤结果。在用户表中,我有一个名为parentcompany_id
所以,让我们看看我是否可以用语言表达我需要做的事情..
我需要从时钟中选择 * 并离开加入 user.parentcompany_id where timeclock.daydate < :start 和 where u.parentcompany = :pid
其中开始是:`date('Ymd 00:00:00');
我已经设置了这个查询:
$em = $this->getDoctrine()->getEntityManager();
$start = date('Y-m-d 00:00:00');
$qb = $em->getRepository('EcsCrmBundle:TimeClock');
$qb = $qb->createQueryBuilder('t');
$query = $qb->select('t, u.parentcompany_id')
->from('timeclock', 't')
->leftJoin('Ecs\AgentManagerBundle\Entity\User', 'u', 'ON' 'u.id = t.noteBy_id AND u.parentcompany_id = :pid')
->where('t.daydate < :start')
->andWhere("t.noteBy_id != ''")
->setParameter('start', $start)
->setParameter('pid', $user->getParentcompany())
->getQuery();
$entities = $query->getArrayResult();
我看了又看,找不到解决我得到的错误的方法:
An exception has been thrown during the rendering of a template ("[Semantical Error] line 0, col 112 near 'u ON u.id = t.noteBy_id': Error: Identification Variable Ecs\AgentManagerBundle\Entity\User used in join path expression but was not defined before.") in EcsCrmBundle:TimeClock:manager.html.twig at line 5.
得到输出的查询是:
SELECT t, u.parentcompany_id FROM Ecs\CrmBundle\Entity\TimeClock t LEFT JOIN Ecs\AgentManagerBundle\Entity\User u ON u.id = t.noteBy_id AND u.parentcompany_id = :pid, timeclock t LEFT JOIN Ecs\AgentManagerBundle\Entity\User u ON u.id = t.noteBy_id AND u.parentcompany_id = :pid WHERE t.daydate < :start AND t.noteBy_id != ''
在正常情况下它会完美地工作......但在这种情况下,它只是不......有什么想法吗?