使用内部联接查询生成器symfony2删除函数

时间:2014-02-20 06:10:34

标签: symfony twig dql

我是 symfony2 的新手,在某些部分卡住了,我在2个表中存在id号的记录,我需要使用删除功能删除两个表中的记录< / p>

我尝试使用查询构建器,它在一个表中完美删除,但我需要使用该删除功能加入另一个表。

我的控制器

 public function deleteAction(Request $request){
    $deleteQuery = $this->getDoctrine()
    ->getManager()
    ->createQueryBuilder('d')
    ->delete('TcPlayerBundle:TcTracks', 'd','TcprofileBundle:TcWall','t')
    ->where('d.id = ' . $request->get('id'))
    ->innerJoin('t.id=' . $request->get('id'))
    ->getQuery();
    $deleted = $deleteQuery->getResult();

    $deleted->flush();
    return $this->render('TcPlayerBundle:Default:all.html.twig',array(
            'tracks' => $tracks
    ));
}

另一个表格中的idrelated_id

1 个答案:

答案 0 :(得分:0)

尝试使用内部联接d.wallTcTracks关系

$deleteQuery = $this->getDoctrine()
        ->getManager()
        ->createQueryBuilder('d')
        ->delete('TcPlayerBundle:TcTracks', 'd',)
        ->innerJoin('d.wall', 'w', 'WITH', 'w.id = :wId')
        ->where('d.id = :dId')
        ->setParameter('wId',  $request->get('id'))
        ->setParameter('dId',  $request->get('id'))
        ->getQuery();

$deleted = $deleteQuery->getResult();

$deleted->flush();
return $this->render('TcPlayerBundle:Default:all.html.twig',array(
        'tracks' => $tracks
));