我正在嘗試檢查用戶的 otp 代碼是否正確。
我的 User_Otp 表的結構如下。
編號 | 代碼 | 用戶 ID | created_at | 更新時間
樣本資料是:
編號 | 代碼 | 用戶 ID | created_at | 更新時間
19 | 第1234章 27 | 10:12:26 | 10:12:26
20 | 第1235章 27 | 10:12:27 | 10:12:27
21 | 第1236章 27 | 10:12:28 | 10:12:28
我只想讓用戶在輸入1236otp 代碼時進行驗證,因為這是他嘗試重新發送 otp 代碼時的最新代碼。
我使用下面的代碼來實作這一點但不起作用:
$userOtp = UserOtp::where('code', request('code'))->where('user_id', request('user_id'))->latest('created_at')->first();
if ($userOtp) {
// verified
}
uj5u.com熱心網友回復:
該latest函式只對結果進行排序,而不是過濾。這意味著如果代碼存在,您將始終得到結果,您可以執行以下操作:
$userOtp = UserOtp::where('user_id', request('user_id'))->latest('created_at')->first();
if ($userOtp->code === request('code')) {
// verified
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/466470.html
