Laravel Cashier调用未定义的方法onGracePeriod()

时间:2017-03-08 17:01:27

标签: laravel laravel-5 laravel-5.1 laravel-5.4 laravel-cashier

所以我最近从Laravel 5.1升级 - > 5.4和5.0的收银员 - > 7.0。在我的刀片中,我使用此检查来查看用户是否处于宽限期

<?php if(Auth::check() && Auth::user()->onGracePeriod()): ?>

但是现在这段代码抛出异常

Call to undefined method Illuminate\Database\Query\Builder::onGracePeriod()

根据文档,我的用户模型具有导入

use Laravel\Cashier\Billable;

和类本身内部的use语句

class User extends Model implements AuthenticatableContract, 

CanResetPasswordContract
{
     use Authenticatable, CanResetPassword, Billable;
    /**
     * The database table used by the model.
     *
     * @var string
...

还有其他可能导致此错误的内容吗?搜索代码看起来该函数在收银员的Subscription.php内,但我似乎找不到修复。我还有文档中经常引用的日期

protected $dates = ['trial_ends_at', 'subscription_ends_at'];

但是我有这个和我的数据库在回到5.1之前使用它,所以我怀疑这是相关的。有任何想法吗?我唯一能想到的是从5.1移动时 - > 5.4我不得不删除“BillableContract”,因为看起来它已经不再使用了,有什么东西要用它代替吗?谢谢!

1 个答案:

答案 0 :(得分:1)

我相信你必须直接引用他们的订阅作品 - 而不是直接引用用户(我认为它被错误使用是我所说的);

the documentation检查onGracePeriod,如下所示:

if ($user->subscription('main')->onGracePeriod()) {
    //
}