Symfony - удалить по ID - PullRequest
0 голосов
/ 04 июня 2018

Я определил функцию удаления 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();
}

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

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

$em = $this->getDoctrine()->getManager();
$user = $em->getRepository(‘...’)->findBy([‘id’ => $id]);
$em->remove($user);
$em->flush();
0 голосов
/ 04 июня 2018

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

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

return $query;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...