Laravel collection after sortBy array issue

2021/12/06閱讀時間約 1 分鐘
在Laravel collection sortBy之後發現原本的array格式在資料回傳後居然變成json格式,以下依序描述問題與解法:
有一包data如下:
$data = collect($data);
現在sortBy show_order欄位後,結果如下:
$data = collect($data)->sortBy('show_order');
看似有照想要的結果排序,但是當把data return的時候,資料卻變成這樣:
然後前端就exception了!
為什麼array會變成這種奇怪的資料結構呢? 主要是sortBy之後index順序變了,這時候資料並不是一個有效的indexed array,因此被當作是associative array,就會轉換成json object結構了。
解決方法:
在sortBy之後加上->values(),來把array做reindex:
$data = collect($data)->sortBy('show_order')->values();

如此回傳後就會視為indexed array了。
為什麼會看到廣告
20會員
161內容數
留言0
查看全部
發表第一個留言支持創作者!