我仍然遇到一个让我停止工作的问题,因为我没有解决它。
我有2个表,Task和TaskDone。 在任务中,存储任务(ID)的ID和任务分配给的用户(用户)
在我的TaskDone表中,我有TaskDone(ID)的ID,标记为“done”(Task_ID)的Task的ID和标记为done的任务被分配给(User_ID)的用户
在我的控制器中,我通过以下代码获得分配给特定用户的所有任务(请求,分配给用户的任务是通过简单的IF-Request在TWIG模板中完成的)但我也有机会获得我的控制器中的用户ID(ID在URL中)
$all_tasks = $this->getDoctrine()
->getRepository('SeotoolMainBundle:Task')
->findBy(array('User' => $id));
现在我只想获得task.ID和task.User存在于TaskDone表中的所有任务,所以当在TaskDone中完成一个条目,ID = 1时User_ID = 20 | Task_ID = 3,我从ID为20的用户处完成所有已完成的任务我只获得ID为3的任务。
所以我正在寻找这样的东西(我知道这段代码是错误的)
$done_tasks = $this->getDoctrine()
->getRepository('SeotoolMainBundle:Task')
->findBy(array('User' => $id) IF task.id AND task.user EXISTS in taskDone);
如果有人可以给我提示,帮助或编码如何解决这个问题,我会很高兴。
提前谢谢你,
亲切的问候
马文
答案 0 :(得分:1)
您的实体之间应该describe the associations(more info),并在task
和{{之间执行加入(使用QueryBuilder或DQL) 1}}实体。