CakePHP的3.2查找查询问题
问题描述:
这是我在CakePHP中3.X查询CakePHP的3.2查找查询问题
public function confirmation($token){
$result = $this->Users->findAllByVerificationCode($token);
debug($result->first());
die();
}
如果变量$令牌太长,结果总是null
,但如果我长话短说,我得到的结果。
这是怎么回事?
答
检查数据库模式。可能您的令牌字段对于您要放入的数据来说太小,并且令牌被截断。
答
问题解决了,无论是$token
和verification_code
是相同的,两者都是数字的组合,但是它们中的一个是String
型的,另一种是一个Integer
和CakePHP不会自动转换的类型。
+0
然后它是如何工作的时候令牌很短 –
+0
请在我的回答中看到评论。问题不在于数据类型不同,而在于数据类型不足以保存整个令牌,所以令牌被截断,正如我的答案中所示。 – CoderCreative
我已经检查了我的数据库,我试着用条件查找,我也写了sql查询,但结果总是为空,但是每次我尝试使用简短的'$ token'我都会得到结果。 –
'debug($ result)'显示我的sql查询,everyhing是正确的,'$ token'和'verification_code'这两个值都是相同的。但结果总是'空' –
这仍然听起来像截断问题(假设你正在使用MySQL)。您保存的最长令牌有多久?底层数据库字段的数据类型和长度是多少? – CoderCreative