ORM 如何不用迴圈只返回表中單列的陣列集合 - pluck

24K大白羊發表於2021-01-02

與前端的互動或特定場景中(apahe/echarts),有個常用的互動場景,比如前端需要展示所有使用者的姓名,不需要展示使用者的其他資訊,那我們可以直接使用以下虛擬碼來實現:

$users = User::all()->paginate(15);

但是這樣會給前端返回很多無用的資訊,比如 email 等,那麼可以增加select 或者使用API 資源 resource 來解決,但是這兩種方式都會給前端返回一個二維陣列,前端一定更喜歡返回一個一維陣列,直接迴圈顯示就可以了。

之前我都是使用上面的方法,然後在二次迴圈,構造一個一維陣列的,今天偶然發現了 pluck 方法,這個是在輔助函式–陣列下看到的,後來在資料庫文件中也發現了,有了他就方便多了,直接獲取單列的資料,還是一維陣列。

$userNames = User::oldest()->pluck('name')->toArray();

感覺之前的方式好差勁,趕緊悄悄的都改成了這種方式,總結起來,還是文件看的少了。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章