大家好,我是Laravel的新手,正在尝试创建一个订阅检查器。请不要建议收银员,因为支付将使用其他方法,如比特币。
我有两个模型,用户模型和订阅模型。
在用户模型中,我有一个方法subscription,它返回用户有一个订阅的关系。
public function subscription()
{
return $this->hasOne(Subscription::Class);
}在订阅模型中,我有一个User方法,它返回订阅属于某个用户的关系
public function user()
{
return $this->belongsTo(User::Class);
}我现在想在我的刀片模板中返回当前日期是否在订阅表中的结束日期之后的状态。我在订阅模型中创建了一个isSubscribed方法来返回当前日期是否超过了结束日期。
public function isSubscribed()
{
$now = Carbon::now();
if ($now->gt($this->enddate))
{
return false;
}
return true;
}在刀片模板中,我根据用户订阅方法是返回true还是false来显示数据
@if(Auth::user()->subscription->isSubscribed())
You're subscribed
@else
You're not subscribed
@endif我现在遇到的问题是,如果订阅中不存在用户的记录,就会抛出
对null调用成员函数isSubscribed()
如果订阅模型中不存在用户的记录,有没有办法返回false,或者我这样做完全是错误的?
很抱歉,如果这是一个令人难以置信的简单答案,但我已经翻遍了文档,似乎找不到任何东西。
发布于 2016-11-02 23:31:02
您可以检查集合是否为空
所以Auth::user()->subscription->isEmpty()
如果当前用户没有订阅,则返回true。
https://stackoverflow.com/questions/40383570
复制相似问题