Php 检查Laravel中的令牌是否过期

Php 检查Laravel中的令牌是否过期,php,laravel,Php,Laravel,我有带列的表令牌:user\u id,token,expires\u at 例如: 我有代币:12345,给我,他的有效期是:2018-06-05 当我生成新令牌时,我最多生成7天 如何在模型中检查此项 我尝试在模型中使用范围: public function scopeExpired($query) { return $this->where('expires_at', '<=', Carbon::now())->exists(); } 公共函数作用域已过期($qu

我有带列的表令牌:
user\u id
token
expires\u at

例如:

我有代币:12345,给我,他的有效期是:2018-06-05

当我生成新令牌时,我最多生成7天

如何在模型中检查此项

我尝试在模型中使用范围:

public function scopeExpired($query) {
    return $this->where('expires_at', '<=', Carbon::now())->exists();
}
公共函数作用域已过期($query){

return$this->where('expires_at',”我一直都是这样做的。请注意,您需要将
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;
}

我得到false。我的令牌有效期为:2018-06-05。但今天是2018-05-29。我需要得到true,但不是false。false-过期。因此,将方法名称更改为
tokenNotExpired
,并将
更改为code>
?请注意,使用否定的方法名称会让人困惑。您的评论告诉我,我的答案是正确的(您自己的代码可能会这样做),但您只是希望得到不同的结果。是的。非常感谢没有问题!仔细想想,您还可以将该方法重命名为
tokenValid()
,这非常清楚,并给出了您期望的结果:)
$validToken = $user->tokenExpired();

// Or realistically

if ($user->tokenExpired()) {
    // Do something
}