我有一个列的表标记:user_id,token,expires_at。
例:
我有令牌:12345,对我来说,他过期于:2018-06-05
生成新令牌时,最多生成7天。
我该如何检查模型?
我试着做模型的范围:
public function scopeExpired($query) {
return $this->where('expires_at', '<=', Carbon::now())->exists();
}
Run Code Online (Sandbox Code Playgroud)
但是没有用。总是假..
我一直按照以下方式做这样的事情。请注意,您需要将该expires_at字段作为模型上的属性。
// Probably on the user model, but pick wherever the data is
public function tokenExpired()
{
if (Carbon::parse($this->attributes['expires_at']) < Carbon::now()) {
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以从任何地方致电:
$validToken = $user->tokenExpired();
// Or realistically
if ($user->tokenExpired()) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)