Javascript Symfony2-获取从路由到控制器的ID
解决问题没什么麻烦。我有一个显示我的数据的/查看警报页面。对于每一行数据,我都提供了一个删除选项Javascript Symfony2-获取从路由到控制器的ID,javascript,ajax,symfony,Javascript,Ajax,Symfony,解决问题没什么麻烦。我有一个显示我的数据的/查看警报页面。对于每一行数据,我都提供了一个删除选项 <input type="button" value="Delete" data-url="{{ path('NickAlertBundle_delete') }}" onclick="delete_alert( {{ alert[0].id }} )"/> 因此,这将调用我的删除路由,并应传递要删除的数据行的id。我的路线目前是这样的 NickAlertBundle_delete:
<input type="button" value="Delete" data-url="{{ path('NickAlertBundle_delete') }}" onclick="delete_alert( {{ alert[0].id }} )"/>
因此,这将调用我的删除路由,并应传递要删除的数据行的id。我的路线目前是这样的
NickAlertBundle_delete:
pattern: /view-alerts
defaults: { _controller: NickAlertBundle:Alert:delete }
requirements:
_method: POST
我的url模式与查看警报相同,因为当他们从该页面删除警报时,我不希望他们重定向到其他页面
因此,现在我正在尝试访问控制器中的id,以便删除警报。目前我正在努力
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');
}
我当前收到的错误是
的查询缺少标识符id
Nick\AlertBundle\Entity\AvailabilityAlert
如何通过我的操作方式(通过ajax请求)将id发送给我的控制器
谢谢您是否尝试过:
if($request->isXmlHttpRequest())
{
$id = (int)$request->request->get('row');
}
而不是:
$id = $request->get('id');
?当请求已经传递到控制器时,他为什么要从容器中提取请求?我同意,既然参数名为“row”,那么使用row比id更有意义。这是一个好问题。只是我有使用容器的习惯。你说得对,我编辑过。
$id = $request->get('id');