gpt4 book ai didi

php - 即使在成功操作后 Apigility 也会返回错误

转载 作者:可可西里 更新时间:2023-11-01 07:14:55 24 4
gpt4 key购买 nike

我正在使用 Apigility 和 Zend Framework 2 构建 REST API。在此 API 中,我有一个代码连接的 REST 服务,当我尝试删除实体时遇到奇怪的行为。我使用 TableGateway 对象的 delete 方法删除传递到“资源”文件的 delete 方法中的数据:

public function delete($id)
{
//GetTable returns a TableGateway instance
$this->getTable('order')->delete(array('id' => $id));
return array("status" => "deleted", "id" => $id);
}

我使用 Postman REST 客户端测试了这个功能并得到了响应:

{
"type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title":"Unprocessable Entity",
"status":422,
"detail":"Unable to delete entity."
}

但是,当我检查mysql数据库时,有问题的实体被正确删除了。没有发生错误的迹象。

返回此类错误的原因可能是什么?

更新:代码到达 TableGateway 删除函数调用之后的行。这意味着响应可能是在函数被调用并且我返回的返回值被忽略之后构建的。

最佳答案

如果将删除逻辑修改为“返回真”,则 API 响应应按预期呈现 HTTP 204。

...
class ItemResource extends AbstractResourceListener
{
...
public function delete($id)
{
$service = $this->serviceManager->get('...\ItemService');
$service->deleteItem($id);
return true;
}
...
}

关于php - 即使在成功操作后 Apigility 也会返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22597441/

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