Symfony — удалить по ID

Я определил функцию удаления mu для удаления строки по идентификатору, но каждый раз, когда я пробую что-то новое, я получаю сообщение об ошибке, поэтому сомневаюсь, что моя логика верна.

это мой контроллер и сервис

public function deleteUser($id)
{
$query = $this->getUserRepository()
->createQueryBuilder('du')
->delete('du')
->where('du.id = :id')
->setParameter("id", $id)
->getQuery()
->execute();

return $query;
}

/**
* @param $id
* @Route("/users/delete/{id}", name="user_delete")
* @return \Symfony\Component\HttpFoundation\JsonResponse
* @throws \Doctrine\Common\Annotations\AnnotationException
*/
public function getUserDeleteAction($id)
{

$this->get('user')->deleteUser($id);

return $this->success();
}

0

Решение

Вы должны использовать -> удалить () в контроллере.

$em = $this->getDoctrine()->getManager();
$user = $em->getRepository(‘...’)->findBy([‘id’ => $id]);
$em->remove($user);
$em->flush();
1

Другие решения

Я решил эту проблему самостоятельно.
Похоже, что функция удаления требует аргумента о том, что удалять. В моем первоначальном вопросе он удалил бы всю базу данных, если бы он действительно работал.

$query = $this->getUserRepository()
->createQueryBuilder('du')
->delete('LottolandBundle:User','du')
->where('du.id = :id')
->setParameter("id", $id)
->getQuery()
->execute();

return $query;
0

По вопросам рекламы [email protected]