当我试图确定一个物体是否为空时,它告诉我:
尝试获取非对象的属性
我这样做:
$lastTicket = Auth::user()->ticket->last()->ticketid;
if($lastTicket->isEmpty())
{
$lastTicket = 0;
}
显然是Auth :: user() - > ticket-> last();还不是记录。我该怎么做?我和Laravel一起工作。
答案 0 :(得分:2)
在获取属性之前,您需要检查该集合是否为空:
if(Auth::user()->ticket->last()->isEmpty())
{
$lastTicket = 0;
}
else
{
$lastTicket = Auth::user()->ticket->last()->lastId;
}
简而言之:
$lastTicket = !Auth::user()->ticket->last()->isEmpty() ? $lastTicket = Auth::user()->ticket->last()->lastId : 0;
答案 1 :(得分:1)
首先看看here是否可以解决您的问题。无论如何,如果您尝试加载关系,您应该查看official documentation:
动态属性
Eloquent允许您通过动态属性访问您的关系。 Eloquent会自动为您加载关系,甚至足够聪明,可以知道是调用get(一对多关系)还是第一个(一对一关系)方法。然后可以通过动态属性访问它,其名称与关系相同。例如,使用以下型号$ phone:
class Phone extends Eloquent { public function user() { return $this->belongsTo('User'); } } $phone = Phone::find(1);
而不是像这样回复用户的电子邮件:
echo $phone->user()->first()->email;
可简单地缩短为:
echo $phone->user->email;
答案 2 :(得分:0)
正确答案是:
$lastTicket = !Auth::user()->ticket->last() ? Auth::user()->ticket->last()->ticketid+1 : 0;
因为如果它为空,则默认返回0.