我有一個挑戰,如果我想在使用 Laravel 的 ORM 時根據 ID 串列對記錄進行排序,我該怎么做?!!!!!!!!!
我的意思是:假設我們有一個名為 users 的表,其中包含 100 條記錄,每條記錄都有一個唯一的 ID。我們還有一個 ID 陣列。
$ids = [4,1,2,3]
現在我想獲取用戶串列,但只有在 ids 陣列中排在第一位的用戶,其次是按照與此陣列中列出的相同順序的用戶。
User::whereIn('id' , $Ids)->sortBy('id',$ids)->get();
你能想出一個解決方案來做到這一點嗎?
User::whereIn('id' , $Ids)->sortBy('id',$ids)->get();
uj5u.com熱心網友回復:
集合sortBy()函式可以通過這種方式進行自定義回呼:
$users = User::whereIn('id', $Ids)->get()
->sortBy(function($user, $key) use($ids) {
return array_search($user->id, $ids);
});
這將根據給定的陣列對您的集合進行排序。
您還可以參考檔案以獲取更多資訊。
請注意,該sortBy()函式必須作用于集合,這意味著該get()函式必須位于它之前。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/524706.html
標籤:拉拉维尔排序雄辩
