gpt4 book ai didi

javascript - Symfony2 - 从路由到 Controller 获取 ID

转载 作者:行者123 更新时间:2023-11-30 00:32:55 25 4
gpt4 key购买 nike

解决问题的小麻烦。我有一个显示我的数据的/view-alerts 页面。我为每一行数据提供了一个删除选项

<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!");
}
});
}

这样调用我的删除路由,并且应该传递要删除的数据行的 id。我的路线目前是这样的

NickAlertBundle_delete:
pattern: /view-alerts
defaults: { _controller: NickAlertBundle:Alert:delete }
requirements:
_method: POST

我有与 view-alerts 相同的 url 模式,因为当他们从此页面删除警报时,我不希望他们重定向到另一个页面。

所以现在我正在尝试访问我的 Controller 中的 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');
}

我目前收到的错误是

The identifier id is missing for a query of Nick\AlertBundle\Entity\AvailabilityAlert

我怎样才能用我做事的方式(通过 ajax 请求?)获取我的 Controller 的 id

谢谢

最佳答案

你试过吗:

    if($request->isXmlHttpRequest())
{
$id = (int)$request->request->get('row');
}

代替:

$id = $request->get('id');

?

关于javascript - Symfony2 - 从路由到 Controller 获取 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28521804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com