2016-03-02 52 views
0

這是我在CakePHP中3.X查詢CakePHP的3.2查找查詢問題

public function confirmation($token){ 
    $result = $this->Users->findAllByVerificationCode($token); 
    debug($result->first()); 
    die(); 
} 

如果變量$令牌太長,結果總是null,但如果我長話短說,我得到的結果。

這是怎麼回事?

回答

0

檢查數據庫模式。可能您的令牌字段對於您要放入的數據來說太小,並且令牌被截斷。

+0

我已經檢查了我的數據庫,我試着用條件查找,我也寫了sql查詢,但結果總是爲空,但是每次我嘗試使用簡短的'$ token'我都會得到結果。 –

+0

'debug($ result)'顯示我的sql查詢,everyhing是正確的,'$ token'和'verification_code'這兩個值都是相同的。但結果總是'空' –

+0

這仍然聽起來像截斷問題(假設你正在使用MySQL)。您保存的最長令牌有多久?底層數據庫字段的數據類型和長度是多少? – CoderCreative

0

問題解決了,無論是$tokenverification_code是相同的,兩者都是數字的組合,但是它們中的一個是String型的,另一種是一個Integer和CakePHP不會自動轉換的類型。

+0

然後它是如何工作的時候令牌很短 –

+0

請在我的回答中看到評論。問題不在於數據類型不同,而在於數據類型不足以保存整個令牌,所以令牌被截斷,正如我的答案中所示。 – CoderCreative