Laravel 5.4 - 检查来自另一个 table 的数据
Laravel 5.4 - Checking data from another table
对 laravel 5.4 仍然很困惑,因为我是新手,我试图从 Record table 中获取数据行年和课程与用户相同。
$show = Profile::where('userid','=',$id)->first();
$check1 = Record::where([['year','=',$show->year],['course','=',$show->course]])->get();
成功运行,能够获取到人员名单。现在,我接下来要做的是检查这些人员列表(来自 $check1 的结果)是否存在于另一个名为 Fbuser[=29] 的 table 上=].试过这样做,
$check2 = Fbuser::where([['first_name','=',$check1->firstname],['last_name','=',$check1->lastname]]);
if ($check2 === null) {
return 'recommend';
} else {
return 'exit';
}
但是它给了我一个错误
(1/1) Exception
Property [firstname] does not exist on this collection instance.
有什么办法可以解决这个问题吗?
提前致谢。
当您使用 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';
}
希望对您有所帮助。
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()
对 laravel 5.4 仍然很困惑,因为我是新手,我试图从 Record table 中获取数据行年和课程与用户相同。
$show = Profile::where('userid','=',$id)->first();
$check1 = Record::where([['year','=',$show->year],['course','=',$show->course]])->get();
成功运行,能够获取到人员名单。现在,我接下来要做的是检查这些人员列表(来自 $check1 的结果)是否存在于另一个名为 Fbuser[=29] 的 table 上=].试过这样做,
$check2 = Fbuser::where([['first_name','=',$check1->firstname],['last_name','=',$check1->lastname]]);
if ($check2 === null) {
return 'recommend';
} else {
return 'exit';
}
但是它给了我一个错误
(1/1) Exception Property [firstname] does not exist on this collection instance.
有什么办法可以解决这个问题吗? 提前致谢。
当您使用 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';
}
希望对您有所帮助。
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()