Jimmy's Code

Want to be a better Coder
^

Laravel Collections

2019-10-12

接下來,我想要分享關於Laravel 的一個比較特別的類別:Collections
他有點像是陣列的概念,但更像是一個集合的概念。

相信如果你還記得前面教學談到幾行的程式碼,裡面不是有Article::all$article->tags這幾段嗎?如果你去dd()它,你會發現他們都是同一種類別:Illuminate\Database\Eloquent\Collection

當然,如果你有在之前helper的章節發現到collect()這個方法,他其實回傳的也是Collection,但是他是Illuminate\Support\Collection

兩者在使用上會有一些差異,基本上他們也是大部分使用上也蠻像的,所以我就在這裡把他們放在一起講。

兩者使用差異可以參考這篇文章:https://medium.com/@lynnlin827/two-types-of-collections-in-laravel-888d43858c4e

Laravel為Collection這個類別提供許多的方法,例如map()或者avg()等等,其實和helper()那裏一樣,其實文件也大部分都寫的清清楚楚了。
https://laravel.com/docs/6.x/collections#available-methods

是不是有點像是在寫JavaScript在處理呢!沒錯,我也有這樣的感覺。但這樣似乎程式變得更好讀了呢!

另外Laravel在6.0也推出Lazy Collections的類別,是為了處理我們有時候會有大量的資料時候,避免一次全部讀進記憶體,使用到比較現代化的PHP技巧:yield 和 generator,而開發的一個新類別。其實使用方法很簡單,就是將我們原本使用的all()改成cursor()就完成囉!

2018年:python 起手式:繼承

r567tw

住在台北的一位台東developer,最喜歡"忠心"這個形容詞。這一生希望完成三件事:寫一本書、站在TED演講並且想要成為福音及各種學科的橋梁,希望自己能從基督教的思考框架出發與各學科傾聽、回應、對話