Symfony2自定义主义请求

时间:2014-08-19 18:52:27

标签: php mysql sql symfony doctrine-orm

我仍然遇到一个让我停止工作的问题,因为我没有解决它。

我有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);

如果有人可以给我提示,帮助或编码如何解决这个问题,我会很高兴。

提前谢谢你,

亲切的问候

马文

1 个答案:

答案 0 :(得分:1)

您的实体之间应该describe the associationsmore info),并在task和{{之间执行加入(使用QueryBuilderDQL) 1}}实体。

MySQL docs on JOIN
And a tutorial