在Laravel过滤收集的最佳方法是什么?

时间:2014-07-21 03:45:07

标签: php collections laravel

我正在考虑一个最好的解决方案,同时一个懒惰的解决方案,在Laravel的雄辩结果中过滤收集。我想过滤所有控制器中的所有$ videos集合。是否可以不重写控制器而是将其放入模型中?

这是我的过滤器代码:

$videos = $videos->filter(function( $video ){
        return $video->isPublished();
    });

1 个答案:

答案 0 :(得分:0)

使用查询范围。您可以向here学习。在你的情况下,它会是这样的:

class Video extends Eloquent {
    public function scopePublished($query)
    {
        return $query->where('published', '1');
    }
}

class VideosController extends BaseController {
    public function showPublishedVideos()
    {
        return View::make('published_videos')
                   ->with('videos', Video::published()->take(10)->get());
    }
}