Laravel 收银员调用未定义的方法 onGracePeriod()
Laravel Cashier Call to Undefined Method onGracePeriod()
所以我最近从 Laravel 5.1 -> 5.4 和 Cashier 从 5.0 -> 7.0 升级。在我的 blade 中,我使用此检查来查看用户是否处于宽限期
<?php if(Auth::check() && Auth::user()->onGracePeriod()): ?>
但是现在这段代码抛出异常
Call to undefined method Illuminate\Database\Query\Builder::onGracePeriod()
根据文档,我的用户模型具有导入
use Laravel\Cashier\Billable;
和 class 本身内部的 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" 因为它似乎不再被使用,有什么我必须用它替换的吗?谢谢!
我相信你必须直接引用他们的订阅文章——而不是直接从用户那里引用(我认为它被错误地使用了,这就是我所说的);
根据 the documentation 你像这样检查 onGracePeriod:
if ($user->subscription('main')->onGracePeriod()) {
//
}
所以我最近从 Laravel 5.1 -> 5.4 和 Cashier 从 5.0 -> 7.0 升级。在我的 blade 中,我使用此检查来查看用户是否处于宽限期
<?php if(Auth::check() && Auth::user()->onGracePeriod()): ?>
但是现在这段代码抛出异常
Call to undefined method Illuminate\Database\Query\Builder::onGracePeriod()
根据文档,我的用户模型具有导入
use Laravel\Cashier\Billable;
和 class 本身内部的 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" 因为它似乎不再被使用,有什么我必须用它替换的吗?谢谢!
我相信你必须直接引用他们的订阅文章——而不是直接从用户那里引用(我认为它被错误地使用了,这就是我所说的);
根据 the documentation 你像这样检查 onGracePeriod:
if ($user->subscription('main')->onGracePeriod()) {
//
}