我刚刚确定了数据库连接服务。我更改了实体标识符名称以匹配我的表,添加了三个字段(一个是标识符)并进行了一些长度验证。到目前为止,没有进一步的变化,如此好,我可以get/
,get/:id
没有问题。
问题来自半个帖子。 帖子会在表格中插入,但我的回复是 404找不到项目。当我尝试发布相同的数据时,我得到了重复的密钥错误。
我不明白插入后未找到的错误。我错过了什么吗?
更新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);
}
由于我的db是mysql而我的主键是一个字符串我相信getLastInsertValue()
尝试int id。
我发现的解决方案与使用apigility提供的功能/序列的postrgress db有关,但我认为应该有一种更简单的方法来解决这个问题。 Apigility - Features
我正在寻找一种方法来指定获取最后一次插入值确认的方法或从DbConnectedResource.php继承并重新实现create($data)
方法。
我知道这应该在API/config/module.config.php
类service_manager
下进行配置,但我们并不知道如何。