небольшая проблема с работой. У меня есть страница/view-warn, в которой отображаются мои данные. Для каждой строки данных я обеспечиваю опцию удаленияSymfony2 - Получить идентификатор от маршрута до контроллера
<input type="button" value="Delete" data-url="{{ path('NickAlertBundle_delete') }}" onclick="delete_alert({{ alert[0].id }})"/>
Когда эта кнопка нажата, Javascript функция вызывается.
function delete_alert(id){
var answer = confirm("Confirm delete");
if (answer){
$.ajax({
type: "POST",
url: $(this).attr('data-url'),
data: {row: id},
success: function(data) {
if(data){
var splitdata = data.split(":");
if(splitdata[0]=="Deleted"){
var id = splitdata[1];
alert("Your alert has been deleted");
}else{
alert(data);
}
}else{
alert("Unknown Error!");
}
},
error:function(){
alert("Please try again!");
}
});
}
Так, чтобы называть мой маршрут удаления и передавать идентификатор строки данных, подлежащей удалению. Мой маршрут в настоящее время нравится так
NickAlertBundle_delete:
pattern: /view-alerts
defaults: { _controller: NickAlertBundle:Alert:delete }
requirements:
_method: POST
У меня есть один и тот же шаблон URL-адрес, как просмотреть-оповещение, потому что, когда они удалить предупреждение с этой страницы, я не хочу, чтобы они перенаправляются на другую страницу.
Так что теперь я пытаюсь получить доступ к идентификатору в своем контроллере, чтобы я мог удалить предупреждение. На данный момент я пытаюсь
public function deleteAction(Request $request)
{
$id = $request->get('id');
$em = $this->getDoctrine()->getManager();
$alert = $em->getRepository('NickAlertBundle:AvailabilityAlert')->find($id);
if (!$alert) {
throw $this->createNotFoundException('Alert not found');
}
$alert->setIsDeleted(true);
$alert->setAlertStatus('Inactive');
$em->flush();
return new JsonResponse('Deleted');
}
Ошибка я в настоящее время приема является
Идентификатор идентификатор отсутствует для запроса Ник \ AlertBundle \ Entity \ AvailabilityAlert
Как могу ли я получить идентификатор моего контроллера с помощью способа, которым я занимаюсь (через запрос ajax?)
Thanks
Почему он хочет вытащить запрос из контейнера, когда он уже передан контроллеру? Я согласен, что поскольку параметр называется «строка», то использование строки имеет больше смысла, чем id. – Cerad
Хороший вопрос Cerad. Просто у меня есть привычка использовать контейнер. Вы правы, я отредактировал. –