对于laravel 5.4仍然非常困惑,因为我是新手,我试图从记录表获得相同的年和< em>当然与用户。
$show = Profile::where('userid','=',$id)->first();
$check1 = Record::where([['year','=',$show->year],['course','=',$show->course]])->get();
它成功运行并且能够获得人员列表。现在,我接下来要做的是检查另一个名为 Fbuser 的表中是否存在这些人员列表(来自 $ check1 的结果)。试过这样做,
$check2 = Fbuser::where([['first_name','=',$check1->firstname],['last_name','=',$check1->lastname]]);
if ($check2 === null) {
return 'recommend';
} else {
return 'exit';
}
但它给了我一个错误
(1/1)例外 此集合实例上不存在属性[firstname]。
有什么方法可以解决这个问题吗? 提前谢谢。
答案 0 :(得分:0)
当您使用get()
时,您会收到一个收藏品。你可以通过它的索引得到一个对象,比如
{{ $collection[0]->name }}
修改:
$show = Profile::where('userid','=',$id)->first();
$check1 = Record::where([['year','=',$show->year],['course','=',$show->course]])->get();
$check2 = Fbuser::where([['first_name','=',$check1[0]->firstname], ['last_name','=',$check1[0]->lastname]]);
if ($check2 === null) {
return 'recommend';
} else {
return 'exit';
}
希望它有所帮助。
答案 1 :(得分:0)
check1
包含一组记录,而不是一个Record
。要获得单个Record
,您可以使用foreach。试试这个:
foreach($check1 as $record){
$check2 = Fbuser::where([['first_name','=',$record->firstname],['last_name','=',$record->lastname]]);
if ($check2 === null) {
return 'recommend';
} else {
return 'exit';
}
}
您还应该获得$check2
的结果。 where()
返回查询构建器对象。您应该在结尾使用get()
或first()
来获取此查询的结果。
$check2 = Fbuser::where([['first_name','=',$check1->firstname],['last_name','=',$check1->lastname]])->get()