我试图学习laravel并做了一些询问。在此查询中,我尝试检查记录中的值是否与用户具有相同的年和课程。
$check1 = Record::where([['year','=',$show->year],['course','=',$show->course]])->get();
因为它给了我一个数组的集合,并想检查已经给出的每一个结果,我使用了foreach。
foreach($check1 as $record){
$check2 = Fbuser::where([['first_name','=',$record->firstname],['last_name','=',$record->lastname]])->get();
if ($check2 === null) {
dd($record->firstname);
}else {
//do something
}}
在上面的代码中,我试图检查 Fbuser 表中是否存在 $ check1 的结果。现在,问题是它只会检查第一个值而不是其余值。如何让每个结果通过 $ check2 查询?我想每个人都会这样做。计划列出 Fbuser 表中不包含的所有姓名。尝试寻找解决方案,但似乎找不到解决方案。
答案 0 :(得分:0)
您可以使用Laravel的过滤器,这将仅返回具有相同first_name和last_name的用户的记录:
$filtered_result = $check1->filter(function ($value, $key) {
return Fbuser::where([['first_name','=',$value->firstname],['last_name','=',$value->lastname]];
});