如何检查 Laravel 中的最新行
How to check with latest row in Laravel
我正在尝试检查用户的 otp 代码是否正确。
我的User_Otptable结构如下。
编号 |代码 | user_id | created_at | updated_at
样本数据是:
编号 |代码 | user_id | created_at | updated_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
我只想允许用户在输入 1236
作为 otp 代码时验证,因为这是他尝试重新发送 otp 代码时的最新代码。
我使用下面的代码来实现这个但没有工作:
$userOtp = UserOtp::where('code', request('code'))->where('user_id', request('user_id'))->latest('created_at')->first();
if ($userOtp) {
// verified
}
latest
函数只对结果排序,不过滤。这意味着如果代码存在,你总是会得到一个结果,你可以这样做:
$userOtp = UserOtp::where('user_id', request('user_id'))->latest('created_at')->first();
if ($userOtp->code === request('code')) {
// verified
}
我正在尝试检查用户的 otp 代码是否正确。
我的User_Otptable结构如下。
编号 |代码 | user_id | created_at | updated_at
样本数据是:
编号 |代码 | user_id | created_at | updated_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
我只想允许用户在输入 1236
作为 otp 代码时验证,因为这是他尝试重新发送 otp 代码时的最新代码。
我使用下面的代码来实现这个但没有工作:
$userOtp = UserOtp::where('code', request('code'))->where('user_id', request('user_id'))->latest('created_at')->first();
if ($userOtp) {
// verified
}
latest
函数只对结果排序,不过滤。这意味着如果代码存在,你总是会得到一个结果,你可以这样做:
$userOtp = UserOtp::where('user_id', request('user_id'))->latest('created_at')->first();
if ($userOtp->code === request('code')) {
// verified
}