1. 簡介
collection
提供一個流暢、便利的封裝來操控陣列資料,比原本的array提供更多功能,
相關可用的方法可以參考台灣官網,記得只有Laravel才有哦。
有些第三方的套件使用的方法還是array 型別,所以千萬別覺得array就不重要了
2. 動手改寫getData()
原本我們的getData()
array object to collection object
2.1. Code
1 2 3 4 5 6 7 8 9 10 11 12 13
| public function getData() { return [ [ 'title' => 'A', 'content' => 'aaa', ], [ 'title' => 'B', 'content' => 'bbb', ] ]; }
|
改寫成
1 2 3 4 5 6 7 8 9 10 11 12 13
| public function getData() { return collect([ collect([ 'title' => 'A', 'content' => 'aaa', ]), collect([ 'title' => 'B', 'content' => 'bbb', ]) ]); }
|
順便把index()
改一下,讓我們來觀查狀況
1 2 3 4
| public function index(Request $request) { dump($this->getData()); }
|
2.2. Result
我們再啟用服務之後,瀏覽
1
| http://127.0.0.1:8000/products
|
改前
改後
3. 動手改寫store()
1 2 3 4 5 6 7
| public function store(Request $request) { $data = $this->getData(); $newData = $request->all(); array_push($data,$newData); return response($data); }
|
1 2 3 4 5 6 7 8
| public function store(Request $request) { $data = $this->getData(); $newData = $request->all(); $data->push($newData); dump($data); return response($data); }
|
我們可以看到在最後一個的型別還是array,所以我們可以再這邊改寫一下
1 2 3 4 5 6 7 8
| public function store(Request $request) { $data = $this->getData(); $newData = $request->all(); $data->push(collect($newData)); dump($data); return response($data); }
|