Reputation: 564
I'm new to symfony2 , i'm stuck in some part in the controller while deleting an object using query builder , help me if i gone wrong somewhere
controller
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
));
}
i'm getting an error as
Call to undefined method Tc\PlayerBundle\Entity\TcTracks::createQuery() in /opt/lampp/htdocs/tunecookies/trunk/src/Tc/PlayerBundle/Controller/DefaultController.php line 163
Help me,thanks
Upvotes: 0
Views: 1098
Reputation: 5877
From symfony docs, in your controller action:
$track = $this->getDoctrine()
->getRepository('TcPlayerBundle:TcTracks')
->findOneById($request->get('id'));
$em = $this->getDoctrine()->getManager();
$em->remove($track);
$em->flush();
Or if you really need, by query builder, like:
$deleteQuery = $this->getDoctrine()
->getManager()
->createQueryBuilder('d')
->delete('TcPlayerBundle:TcTracks', 'd')
->where('d.id = ' . $request->get('id'))->getQuery();
$deleted = $deleteQuery->getResult();
Upvotes: 2