使用过滤方法过滤Laravel雄辩的集合

lch*_*lch 3 php laravel laravel-4 laravel-5

  $events=Event::all();
  if (isset($scheduling) && $scheduling!=="All")
  {
     $events = $events->filter(function($event) use ($scheduling)
     {
        return $event->where('scheduling',$scheduling);
      });
   }
  $events=$events->get();
Run Code Online (Sandbox Code Playgroud)

可以有人纠正这个代码.内部过滤器不起作用.无论是否应用过滤器,结果都是相同的.我需要根据条件应用这样的批量过滤器

pin*_*sia 8

您不必在其中使用where条件,您可以返回truefalse从内部返回callback,具体取决于选择条件.

下面的代码只会保留那些events通过给定真值测试的代码:

   $events=Event::all();

   if (isset($scheduling) && $scheduling!=="All") 
   {  
      $events = $events->filter(function($event) use ($scheduling)
      {
         return $event->scheduling == $scheduling;
       });
    }

   dd($events); //Collection
Run Code Online (Sandbox Code Playgroud)

阅读更多