Laravel 5.4从db检查给定的数组

时间:2017-09-04 16:15:58

标签: php mysql laravel laravel-5.4

我试图学习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 表中不包含的所有姓名。尝试寻找解决方案,但似乎找不到解决方案。

1 个答案:

答案 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]];
});