Я хочу, чтобы динамическое удаление сообщений работало, но в результате возникает ошибка, поскольку значение равно нулю.
Контроллер
/**
* @Route("/posts/delete/{id}", name="delete_post", methods={"DELETE"})
*/
public function deletePost($id, LoggerInterface $logger)
{
$post=$this->getDoctrine()->getRepository(Article::class)->find($id);
if(!$post)
{
$this->addFlash(
'notice',
'Something went wrong'
);
$logger->info($id);
}
else
{
$entityManager=$this->getDoctrine()->getManager();
$entityManager->remove($post);
$entityManager->flush();
$entityManager->clear();
}
$response=new Response();
return($response);
}
JS
const articles = document.getElementById("articles");
if (articles) {
articles.addEventListener("click", e => {
if (e.target.className === "btn btn-danger delete-article") {
if (confirm("Are you sure?")) {
const id = e.target.getAttribute("data-id");
fetch("/posts/delete/${id}", {
method: "DELETE"
}).then(res => window.location.reload());
}
}
});
}
Twig
<table border="1" id="articles">
<tr>
<th class="pt">Post title</th>
<th class="pe">Edit</th>
<th class="pd">Delete</th>
</tr>
{% for article in articles %}
<tr>
<td class="title">{{ article.title }}</td>
<td class="edit">
<a href="{{ path('posts_editor', {'id':article.id}) }}" class="btn btn-primary edit-article">
<img src="{{ asset('images/edit.png') }}" class="image">
</a>
</td>
<td class="delete">
<a href="#" class="btn btn-danger delete-article" data-id="{{article.id}}">
<img src="{{ asset('images/delete.png') }}" class="image">
</a>
</td>
</tr>
{% endfor %}
</table>
Я делал это с видеоуроком, и я не знаю, что не так с видео, этот код работал, но когда я написал его, я просто получил ошибку ниже
Error
EntityManager # remove () ожидает, что параметр 1 будет объектом сущности, задан NULL.
Надеюсь, кто-нибудь может мне помочь, я действительно расстроен из-за того, что он не работает.