尽管存在,仍未找到记录

时间:2017-04-19 02:47:15

标签: cakephp cakephp-3.x cakephp-3.4

好吧我将数据json发布到我的后端,我有这个错误:

{
  "message": "Record not found in table \"users\" with primary key ['6']",
  "url": "/users/userdata",
  "code": 404
}

我不知道为什么?我的数据库中有一个id = 6的用户,在我的函数中我正确地收到数据和id,检查这部分,我的控制器:

  public function userdata()
    {
        $user = TableRegistry::get('Users');
        $id = $this->request->getData('iduser');

        $data = $user->get($id, [
            //'contain' => ['Cities']
        ]);

        $this->set([
            'success' => true,
            'data' => $data,
            '_serialize' => ['success', 'data']
        ]);
    }

posting data

使用$this->Users->get($id)$this->Users->find($id)尝试此操作我总是得到相同的错误

1 个答案:

答案 0 :(得分:1)

错误消息可能有点误导,因为人们可能会认为它真的想要访问数据库中的某些内容,但它实际上是InvalidPrimaryKeyException异常(每当收到错误,检查日志!)。

当传递的主键格式与表的主键配置不匹配时会发生这种情况,例如当主键是复合键时,并且您没有传递所有必需的列。如果表主键被错误配置,例如当它是空的时,也可能发生这种情况。

确保您已通过所有必填列,检查您的表格setPrimaryKey() / primaryKey(),确保清除模式缓存(tmp/cache/models)以避免错误/要使用的旧模式,并确保正确配置数据库中的主键约束。