不能用变量过滤雄辩的集合

时间:2016-10-30 03:07:35

标签: php laravel

我无法使用变量过滤集合:

    $sections = Section::all();
    $courses = array("MATH282", "MATH201" , "GEOM202");
    foreach ($courses as $course)
    {
        $sections1 = $sections->filter(function($foo)
        {
            if ($foo->course == $course ) {
            return true;
            }
        });
    }

如果条件是字符串,则过滤器有效。其他一切都有效。

1 个答案:

答案 0 :(得分:1)

您在过滤器闭包功能中缺少use()函数。您的代码应为:

 $sections = Section::all(); $courses = array("MATH282", "MATH201" , "GEOM202");
 foreach ($courses as $course) { 
    $sections1 = $sections->filter(function($foo) use($course)  { 
       if ($foo->course == $course ) { 
            return true; 
       }
    });
 }