Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax请求500错误-调用成员函数为空_Javascript_Php_Jquery_Ajax_Symfony - Fatal编程技术网

Javascript Ajax请求500错误-调用成员函数为空

Javascript Ajax请求500错误-调用成员函数为空,javascript,php,jquery,ajax,symfony,Javascript,Php,Jquery,Ajax,Symfony,我有我的Ajax。方法,该方法发送特定表行中单击按钮的id 我的错误日志返回: 在null上调用成员函数changeStatus() 这很奇怪,因为当我在控制器中转储($id)时,它会显示该实体对象的id,因此我无法找出问题所在 这是我的方法: /** * @Route("/my-entity-route/{id}", name="change_status", options={"expose"=true}) */ p

我有我的Ajax。方法,该方法发送特定表行中单击按钮的id

我的错误日志返回:

在null上调用成员函数changeStatus()

这很奇怪,因为当我在控制器中转储($id)时,它会显示该实体对象的id,因此我无法找出问题所在

这是我的方法:

/**
  * @Route("/my-entity-route/{id}", name="change_status", options={"expose"=true})
  */
    public function changeStatus($id)
    {
       // dump($id);die; -- shows id number

        $entity = $this->entityManager->getRepository(MyEntity::class)->find($id);

        $entity->setStatus(MyEntity::STATUS_CHANGE);
        $this->entityManager->persist($entity);
        $this->entityManager->flush();
    
    }
}
还有我的按钮:

<button type="button" data-entity_id="{{ item.id }}" class="change">Switch Status</button>

您试图从数据库中获取的实体似乎不存在,是否确实请求具有正确id的现有实体

此外,最好触发404而不是获取空指针:

/**
*@Route(“/myentityroute/{id}”,name=“change_status”,options={“expose”=true})
*/
公共功能变更状态($id)
{
$entity=$this->entityManager->getRepository(MyEntity::class)->find($id);
if(!$entity){
抛出$this->createNotFoundException('实体不存在');
}
$entity->setStatus(MyEntity::STATUS\u CHANGE);
$this->entityManager->persist($entity);
$this->entityManager->flush();
}
}

能否将您使用
更改状态
方法的文件添加到帖子中?谢谢您的重播。你能解释一下为什么这是相关的吗?文件中的其他方法除外@McSky在哪个文件和哪一行出现错误?转储($entity)的结果是什么?
$(".change").click(function(ev, el){
var id = $(this).data("entity_id");
if (confirm("Are you sure that you want change status?")) {
    changeToNewStatus(id);
 }
});

function changeToNewStatus(id) {
    $.ajax({
        type: 'PATCH',
        url: "/my-entity-route/"+id,
        processData: false,
        contentType: 'application/json-patch+json',
        success: function () {
            console.log('success!')
        },
        error: function (xhr) {
            var err = JSON.parse(xhr.responseText);
            alert(err.message);
        }
      });
    }