好吧我将数据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)
尝试此操作我总是得到相同的错误
答案 0 :(得分:1)
错误消息可能有点误导,因为人们可能会认为它真的想要访问数据库中的某些内容,但它实际上是InvalidPrimaryKeyException
异常(每当收到错误,检查日志!)。
当传递的主键格式与表的主键配置不匹配时会发生这种情况,例如当主键是复合键时,并且您没有传递所有必需的列。如果表主键被错误配置,例如当它是空的时,也可能发生这种情况。
确保您已通过所有必填列,检查您的表格setPrimaryKey()
/ primaryKey()
,确保清除模式缓存(tmp/cache/models
)以避免错误/要使用的旧模式,并确保正确配置数据库中的主键约束。