在删除之后,我试图使用 js 来刷新页面,但是我找不到错误。我正在使用 Symfony 4。
如果有人看到我的错误在哪里,那将是非常好的。 :)
这是我的控制器:
/// SUPPRIMER UNE VIDEO ///
/**
* @Route("/supprimerVideo/{id}", name="deleteVideo")
* @Method({"DELETE"})
* @param Request $request
* @param $id
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function deleteVideo(Request $request, $id){
$mediaVideo = $this->getDoctrine()->getRepository(MediaVideo::class)->find($id);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($mediaVideo);
$entityManager->flush();
$response = new Response();
$response->send();
}}
这是我的 js 文件:
const videos = document.getElementById('videos');
if (videos){
videos.addEventListener('click', e => {
if(e.target.className === 'btn btn-danger delete-item'){
if (confirm('Es-tu sur de vouloir supprimer ?')) {
const id = e.target.getAttribute('data-id');
fetch('/supprimerVideo/${id}', {
method: 'DELETE'
}).then(res => window.location.reload());
}
}
});
}
这是我的 twig 文件:
<div class="col-12" id="videos">
<a href="#" class="btn btn-danger delete-item" data-id="{{video.id}}">Delete</a>
</div>
我也在 base.html.twig 中添加了 script 。
答案 0 :(得分:0)
用反引号替换fetch('/supprimerVideo/${id}', {
中的引号:
const id = 123;
console.log('/supprimerVideo/${id}')
/supprimerVideo/${id}
console.log(`/supprimerVideo/${id}`)
/supprimerVideo/123
您使用的模板文字$ {}不会替换为实际的id值。在调试工具栏中检查您的请求,以查看您是否真的在symfony应用程序中调用了正确的URL。