我正在测试Postman中的删除操作。我创建了一个删除操作,它不断返回“成功”,当我刷新数据库时,带有转发参数(id = 1)的行仍然存在。
我的服务。
/**
* Delete user
* @param $id
* @return mixed
*/
public function deleteUser($id)
{
$query = $this->getUserRepository()
->createQueryBuilder('du')
->delete('ProjectBundle:User','du')
->where('du.id = :id')
->setParameter("id", $id)
->getQuery()
->execute();
return $query;
}
控制器。
/**
* @Route("/users/delete/{id}", name="user_delete")
* @param $id
* @return \Symfony\Component\HttpFoundation\JsonResponse
* @throws \Doctrine\Common\Annotations\AnnotationException
*/
public function getUserDeleteAction($id)
{
$this->get('user')->deleteUser($id);
return $this->success();
}
我认为这是正确的方法,不知道问题出在哪里。
答案 0 :(得分:2)
您必须使用->remove()
方法,如下所示:
#controller
public function getUserDeleteAction($id)
{
$em = $this->getDoctrine()->getManager();
$user = $em->getRepository('AppBundle:User')->find($id);
$em->remove($user);
return $this->success();
}
信息here。