2014-07-21 38 views
0

我在思考一個最好的解決方案,同時在拉羅維爾的一個懶惰的解決方案過濾集合的雄辯結果。我想過濾我所有控制器中的所有$視頻集合。有可能在不重寫控制器的情況下將其放入模型中?在Laravel中過濾收集的最佳方式是什麼?

這裏是我的過濾器代碼:

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

我認爲我最好的卡是在所有的查詢中添加一個作用域。 –

+1

'isPublished()'做了什麼?數據庫中的簡單布爾列還是更復雜的東西? – Unnawut

回答

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()); 
    } 
} 
相關問題