Код состояния 500 при удалении объекта с помощью ax ios и Symfony, но удаление работает - PullRequest
1 голос
/ 07 апреля 2020

Я использую vue в качестве внешнего интерфейса. Я хочу удалить объект из моей базы данных при нажатии кнопки, я публикую выбранный объект с помощью ax ios, но получаю следующую ошибку:

wish.js:40 Error: Request failed with status code 500
    at createError (createError.js:16)
    at settle (settle.js:17)
    at XMLHttpRequest.handleLoad (xhr.js:61)

, даже если мой объект действительно удален из моего база данных.

Вот мой код:

 postWishToBeDeleted({commit}, wishId) {
    console.log(wishId);
    axios.post('/api/post/delete', {
        wishId: wishId
    }).catch(error => {
        console.error(error);
    }).then( response => {
        commit('removeWish', wishId);
        }
    )
}

Внутри моего symfony контроллера:

     /**
     * @Route("/api/post/delete", name="app_api_post_delete", methods={"POST"})
     */
    public function deleteWish(Request $request, WishRepository $repository) {

        $data = $request->getContent();
        $data = json_decode($data, true);
        $wish = $repository->find($data['wishId']);

        $em = $this->getDoctrine()->getManager();
        $em->remove($wish);
        $em->flush();

        return $this->json($wish);
    }

Я думаю, что с моим ответом что-то не так, я ' я все еще новичок в Vue и топор ios, поэтому я не уверен, как правильно вернуть объект json

РЕДАКТИРОВАТЬ:

Я заметил, что эта ошибка возникает, только если у меня есть более одного объекта ?? Если я только один, и я удаляю его, нет ошибки

1 Ответ

1 голос
/ 07 апреля 2020

Состояние 500 является ошибкой сервера, и из поведения следует, что все, что вызывает ошибку, должно произойти после удаления элемента.

Если посмотреть на метод deleteWish, если $wish было удалено , возможно, проблема заключается в попытке преобразовать его в JSON, когда он не определен. Попробуйте вернуть что-то еще, например:

return true;
...