如何在symfony2中使用查询删除记录

如何在symfony2中使用查询删除记录,symfony,twig,Symfony,Twig,我是symfony2新手,在使用查询生成器删除对象时,我卡在控制器的某些部分,如果我在某个地方出错,请帮助我 控制器 public function deleteAction(Request $request){ $tracks = $this->getDoctrine() ->getRepository('TcPlayerBundle:TcTracks') ->find($request->get('id')) /*->delete

我是symfony2新手,在使用查询生成器删除对象时,我卡在控制器的某些部分,如果我在某个地方出错,请帮助我

控制器

public function deleteAction(Request $request){
    $tracks = $this->getDoctrine()
    ->getRepository('TcPlayerBundle:TcTracks')
    ->find($request->get('id'))
    /*->delete($id);*/
    ->createQuery('DELETE from TcPlayerBundle:TcTracks t WHERE t.id =:id');


    return $this->render('TcPlayerBundle:Default:all.html.twig',array(
        'tracks' => $tracks
    ));
}
我得到了一个错误

Call to undefined method Tc\PlayerBundle\Entity\TcTracks::createQuery() in /opt/lampp/htdocs/tunecookies/trunk/src/Tc/PlayerBundle/Controller/DefaultController.php line 163
在您的控制器操作中,请帮助我,谢谢symfony的帮助:

$track = $this->getDoctrine()
    ->getRepository('TcPlayerBundle:TcTracks')
    ->findOneById($request->get('id'));
$em = $this->getDoctrine()->getManager();
$em->remove($track);
$em->flush();
或者,如果您确实需要,请使用查询生成器,例如:

$deleteQuery = $this->getDoctrine()
     ->getManager()
     ->createQueryBuilder('d')
     ->delete('TcPlayerBundle:TcTracks', 'd')
     ->where('d.id = ' . $request->get('id'))->getQuery();
$deleted = $deleteQuery->getResult();

@我需要通过查询删除NHGonly@harshamullangi:这绝对是正确的方法。@NHG如何与另一个表链接,我在两个表中有相同的曲目,在该表中我也需要delete@harshamullangi这些表之间有关系吗?