Symfony - не могу удалить запись

0

Я тестирую действие удаления в 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
    Я не знаю, что делает succes (), но, похоже, это никак не связано с deleteUser ().
  • 0
    Вы можете увидеть свой запрос в profiler> doctrine?
Показать ещё 2 комментария
Теги:

1 ответ

2

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

#controller
public function getUserDeleteAction($id)
{
    $em = $this->getDoctrine()->getManager();
    $user = $em->getRepository('AppBundle:User')->find($id);
    $em->remove($user);

    return $this->success();
}

Информация здесь.

  • 0
    Это происходит как ошибка .. «EntityManager # remove () ожидает, что параметр 1 будет объектом сущности, заданным NULL».
  • 0
    Это, скорее всего, означает, что нет пользователя с идентификатором, содержащимся в $ id
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню