1

我刚刚建立了一个数据库连接服务。我更改了实体标识符名称以与我的表匹配,添加了三个字段(一个是标识符)并进行了一些长度验证。没有进一步的变化,到目前为止,很好,我可以get/get/:id没有问题。

问题来自半柱。做一个帖子确实插入到表中,但我的回复是404 item not found。当然,当尝试发布相同的数据时,我会遇到重复的密钥错误。

我不明白插入后未找到有什么问题。我错过了什么吗?

更新 3/9

阅读一些帖子和小组,我可以将问题缩小到zf-apigility/src/DbConnectedResource.php

public function create($data) {
    $data = $this->retrieveData($data);
    $this->table->insert($data);
    $id = $this->table->getLastInsertValue();
    return $this->fetch($id);
}

由于我的数据库是 mysql,而我的主键是一个字符串,我相信会getLastInsertValue()尝试一个 int id。

我找到的解决方案与使用 apigility 提供的功能/序列的 postrgress db 有关,但我认为应该有一种更简单的方法来解决这个问题。Apigility - 功能

我正在寻找一种方法来指定获取最后插入值确认的方法或从 DbConnectedResource.php 继承并重新实现该create($data)方法。

我知道这应该在API/config/module.config.php下面的service_manager类别中配置,但真的不知道如何。

4

0 回答 0