1

好吧,我将数据 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)总是得到同样的错误

4

1 回答 1

1

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

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

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

于 2017-04-19T10:44:53.067 回答