【发布时间】:2017-03-15 23:30:15
【问题描述】:
您好,我对 Laravel 比较陌生,正在尝试创建订阅检查器。请不要建议收银员,因为付款将使用比特币等替代方式。
我有两个模型,用户模型和订阅模型。
在用户模型中,我有方法订阅,它返回用户拥有一个订阅的关系。
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 或者我这样做完全错误?
抱歉,如果这是一个令人难以置信的简单答案,但我已经搜索了文档并且似乎找不到任何东西。
【问题讨论】: