我有包含列的表标记:user_id
,token
,expires_at
。
示例:
我有令牌:12345,对我来说,他的到期日期为:2018-06-05
当我生成新令牌时,我最多会生成7天..
我如何在模特中检查这个?
我尝试使用模型中的范围:
public function scopeExpired($query) {
return $this->where('expires_at', '<=', Carbon::now())->exists();
}
但不行。总是假..
答案 0 :(得分:5)
我总是按照以下方式做这样的事情。请注意,您需要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;
}
然后从任何地方打电话:
$validToken = $user->tokenExpired();
// Or realistically
if ($user->tokenExpired()) {
// Do something
}