尽管存在但未找到记录

Record not found despite being present

好吧,我正在 post 数据 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']
        ]);
    }

试试 $this->Users->get($id)$this->Users->find($id) 我总是得到同样的错误

错误消息可能有点误导,因为人们可能认为它实际上是关于尝试访问数据库中的某些内容,但它实际上是一个 InvalidPrimaryKeyException 异常(每当收到错误时,请检查日志! ).

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

确保您传递了所有必需的列,检查您的 tables setPrimaryKey()/primaryKey() 调用,确保清除模式缓存(tmp/cache/models ) 避免使用 wrong/old 模式,并确保正确配置数据库中的主键约束。