Laravel collection after sortBy array issue

更新於 2024/12/05閱讀時間約 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了。
為什麼會看到廣告
avatar-img
21會員
161內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Vic Lin的沙龍 的其他內容
假設有個collection data如下圖上方資料,使用->collapse()後結果即為下圖下方資料,等於是把array的values整理成一包array (combine multiple arrays into one): 本筆記參考: 1. https://stackoverflow.
source code: E 提供兩個範例,其實before, after就如同字面上的意思,會在前後加上內容。 範例1簡單的在前後加上文字,如下所示,需特別注意,是在div內的範例1前後加上文字。 before/after除了可以加上文字以外,還可以作為裝飾效果。如範例2,利用position調
最近遇到客戶姓名中有"碧"這個字,發現後面會多一格空白: google了一下,改成用font-face的解法,發現碧後面還是會有一點點空格: 既然這是微軟正黑體粗體的bug,就直接把粗體改掉吧,font-weight設為500,就正常了,或者是換別的字型也是一種解法。 本筆記參考: 1.
把指定DB的SQL檔案匯出到local: $ docker exec {CONTAINER} /usr/bin/mysqldump -u root --password=xxx {DATABASE} > backup.sql 只匯出db結構 add -d: $ docker exec {CONTAI
css display grid可以達到類似table span的排版效果,但還是有些差異,table的span其實是合併,css grid比較像是要佔幾格的意思。 如下程式碼為例,colspan是要往右合併的意思,因此會少一個td。 E css grid colspan sample code:
css grid在排版非常好用,搭配media query即可達到RWD的效果,以下直接附上sample code: E 結果如下: width > 1200px: width width width 接著刻意讓第三個框框高度設為400px,畫面結果如下: 可以看到第二列的格
假設有個collection data如下圖上方資料,使用->collapse()後結果即為下圖下方資料,等於是把array的values整理成一包array (combine multiple arrays into one): 本筆記參考: 1. https://stackoverflow.
source code: E 提供兩個範例,其實before, after就如同字面上的意思,會在前後加上內容。 範例1簡單的在前後加上文字,如下所示,需特別注意,是在div內的範例1前後加上文字。 before/after除了可以加上文字以外,還可以作為裝飾效果。如範例2,利用position調
最近遇到客戶姓名中有"碧"這個字,發現後面會多一格空白: google了一下,改成用font-face的解法,發現碧後面還是會有一點點空格: 既然這是微軟正黑體粗體的bug,就直接把粗體改掉吧,font-weight設為500,就正常了,或者是換別的字型也是一種解法。 本筆記參考: 1.
把指定DB的SQL檔案匯出到local: $ docker exec {CONTAINER} /usr/bin/mysqldump -u root --password=xxx {DATABASE} > backup.sql 只匯出db結構 add -d: $ docker exec {CONTAI
css display grid可以達到類似table span的排版效果,但還是有些差異,table的span其實是合併,css grid比較像是要佔幾格的意思。 如下程式碼為例,colspan是要往右合併的意思,因此會少一個td。 E css grid colspan sample code:
css grid在排版非常好用,搭配media query即可達到RWD的效果,以下直接附上sample code: E 結果如下: width > 1200px: width width width 接著刻意讓第三個框框高度設為400px,畫面結果如下: 可以看到第二列的格
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
Simple Storage Service (S3) 是 AWS 最常應用到的服務,只要是需要將檔案上傳到雲端的狀況都可以使用S3,本篇文章將介紹如何設定與使用AWS S3。
Thumbnail
在使用laravel中的Queue job的時候 如果希望job中斷還可以重新啟動這個時候就會需要用到Supervisor了 本篇文章為您帶來如何使用Supervisor執行Laravel的queue:work的教學
Thumbnail
有的時候,會希望在物件導向中對原生的Class新增功能的時候,大多我們都會寫一個新的class並繼承。 但是其實Laravel提供了一個不同的方式,讓我們可以在常用的Class上,直接新增想要的function,那就是macro。
Migration在 Laravel 中是一種用來管理資料庫結構變更的機制。它的主要目的是使開發者能夠在應用程序的不同環境中保持資料庫結構的一致性,並輕鬆地進行結構變更
Thumbnail
待業中後,發現時間變很多就開始東看看西看看,思考著要如何更深入理解Laravel框架的運用,而在Laravel框架中哪些部分是框架替我們做了哪些處理,推薦一個影片給大家一起學習理解。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
Simple Storage Service (S3) 是 AWS 最常應用到的服務,只要是需要將檔案上傳到雲端的狀況都可以使用S3,本篇文章將介紹如何設定與使用AWS S3。
Thumbnail
在使用laravel中的Queue job的時候 如果希望job中斷還可以重新啟動這個時候就會需要用到Supervisor了 本篇文章為您帶來如何使用Supervisor執行Laravel的queue:work的教學
Thumbnail
有的時候,會希望在物件導向中對原生的Class新增功能的時候,大多我們都會寫一個新的class並繼承。 但是其實Laravel提供了一個不同的方式,讓我們可以在常用的Class上,直接新增想要的function,那就是macro。
Migration在 Laravel 中是一種用來管理資料庫結構變更的機制。它的主要目的是使開發者能夠在應用程序的不同環境中保持資料庫結構的一致性,並輕鬆地進行結構變更
Thumbnail
待業中後,發現時間變很多就開始東看看西看看,思考著要如何更深入理解Laravel框架的運用,而在Laravel框架中哪些部分是框架替我們做了哪些處理,推薦一個影片給大家一起學習理解。