1
可以說我有一個Post對象。我希望已加星標的人隨後根據某些條件對其進行過濾。在查詢生成器上運行收集方法
這些年來,我一直在做這種方式:
Post::where('is_starred', true)->get()->filter(function($post){
...
});
這個偉大的工程,但今天我發現,即使我刪除get()
調用它仍然有效。我不知道這是爲什麼這個工作,因爲where()
返回一個QueryBuilder和filter()
是一種收集方法。如果改爲filter()
,我會調用一些其他收集方法,如each()
。
Post::where('is_starred', true)->filter(function($post){
...
});
所以我的問題是:可以將收集方法應用於QueryBuilder?爲什麼?我查看了QueryBuilder類,以瞭解如何在這些方法中應用這些方法,但是我沒有找到任何東西。 Laravel的文檔中有這些嗎?