У меня проблема с «объектом, не найденным аннотацией @ParamConverter» в Symfony 3.4, когда я пытаюсь удалить выбранные элементы таблицы. Я думаю, что это проблема, когда я пытаюсь получить "зрелище" с идентификатором ("findOneBy ()")
Это мой код (html.twig):
<form method = "delete" action = "{{ path('admin_spectacle_delete_selected') }}">
<button class = "content-red btn btn-fabop" type = "submit"><i class = "fa fa-trash"></i> Tout supprimer</button>
<div class = "table-responsive">
<table id = "myTable" class = "table table-bordered table-hover table-striped">
<thead>
<tr>
<th style = "text-align:center;"><input type = "checkbox" id = "all"></th>
<th>Nom</th>
<th>Lieu</th>
<th>Date spectacle</th>
<th>Annee</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for spectacle in spectacles %}
<tr>
<td id = "spectacle{{ spectacle.id }}"><input type = "checkbox" name='multiSelected[]' value = "{{ spectacle.id }}"></td>
<td>{{ spectacle.nom }}</td>
<td>{{ spectacle.lieu }}</td>
<td>{{ spectacle.dateSpectacle }}</td>
<td>{{ spectacle.annee }}</td>
<td>
<a class = "content-blue btn-fabop btn" href = "{{ path('admin_spectacle_show', { 'id': spectacle.id }) }}"><i class = "fa fa-search"></i> Détail</a>
<a class = "content-purple btn-fabop btn" href = "{{ path('admin_spectacle_edit', { 'id': spectacle.id }) }}"><i class = "fa fa-pencil"></i> Edition</a>
<a class = "content-red btn-fabop btn" href = "{{ path('admin_spectacle_delete_confirmed', { 'id': spectacle.id }) }}"><i class = "fa fa-trash"></i> Suppression</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
и контроллер:
/**
* Confirmation delete
*
* @Route("/deleteSelected", name = "admin_spectacle_delete_selected")
*/
public function deleteSelectedAction(Request $request)
{
$items_selected_id = $request->get('multiSelected');
$em = $this->getDoctrine()->getManager();
$repository = $em->getRepository(Spectacle::class);
foreach($items_selected_id as $item_id) {
$spectacle = $repository->findOneById($item_id);
if (!$spectacle) {
throw $this->createNotFoundException(
'No spectacle found for id '.$spectacle
);
}
else{
$em->remove($spectacle);
}
}
$em->flush();
return $this->redirectToRoute('admin_spectacle_index');
}
Благодарю за ваш ответ !!






Проблема исходит оттуда:
<form method = "delete" action = "admin_spectacle_delete_selected">
Вы буквально звоните .../admin_spectacle_delete_selected, я полагаю, у вас должен быть маршрут /spectacle/{id}
Итак, вы сопоставляете другой маршрут, пытаясь получить "спектакль" с идентификатором "admin_spectacle_delete_selected"
Ваша форма должна выглядеть так:
<form method = "delete" action = "{{ path('admin_spectacle_delete_selected') }}">
Что будет соответствовать вашему deleteSelectedAction
Также ваше действие должно выглядеть примерно так
$items_selected_id = $request->get('multiSelected');
$em = $this->getDoctrine()->getManager();
$repository = $em->getRepository(Spectacle::class)
foreach($items_selected_id as $item_id) {
$spectacle = $repository->findOneById($item_id);
if (!$spectacle) {
throw $this->createNotFoundException(
'No spectacle found for id '.$spectacle
);
}
else{
$em->remove($spectacle);
}
}
$em->flush();
return $this->redirectToRoute('admin_spectacle_index');
Вы повторно объявляете свой EntityManager / Flushing каждый цикл, что для меня не имеет большого смысла :).
Фактически, я пытаюсь удалить выбранные элементы в таблицах данных и выбрать несколько элементов, чтобы выбрать элементы или нет
Итак, я не могу использовать идентификатор в пути к контроллеру, потому что хочу удалить только выбранные элементы. Я не знаю, ясно ли я
Oopsssssssss Я не видел своего плохого
Я не знаю, в чем проблема. Как вы думаете, это связано с Param Converter?
Можете ли вы обновить свое сообщение с помощью измененного кода? Действие атрибута в вашей форме наверняка неверно :)
Я обновил его, вы можете увидеть мой код. В любом случае спасибо за ответы :)
Да, я только что видел ... Теперь все в порядке
На самом деле, я думаю, что с самого начала я не добираюсь до удаления SelectAction. Да та же ошибка ...
Это все еще то же исключение, и я очистил кеш, и я не вижу URL-адреса в html ....
Я покинул свой компьютер, но все еще вошел в систему. Я не могу сейчас протестировать, но сделаю как можно скорее
Здравствуйте, я не знаю, здесь ли вы, но исключение всегда одно и то же .... Нет представления с маршрутом контроллера, возможно, это из-за этого ....
На самом деле, я не вижу URL-адрес, поэтому мне нужно добавить связанное представление? Я вижу проблему с URL-адресом, но забыл вам сказать ...
Проблема решена. Я просто заменяю метод удаления для публикации в моем действии формы, и это работает! Спасибо за ваши ответы !
Благодарю за ваш ответ. Я пробую ваш код, но когда я нажимаю кнопку «Tout supprimer», у меня возникает то же исключение: «NotFoundHttpException HTTP 404 Not Found FabopBundle \ Entity \ Spectacle object not found by the @ParamConverter annotation».