2016-06-14 35 views
-1

我是Laravel的新手,我只是想按照名字對這張表進行排序,但我並不確定從哪裏開始。如何按Laravel中的FirstName對錶格進行排序?

下面是控制器,它只是在桌子上呈現數據。

$resultArray = object_to_array($result); 

    return view('home', [ 
     'resultArray' => $resultArray 
    ]); 

回答

0

試圖解決你在哪裏得到的結果數組名稱。 意味着如果您從數據庫中獲取它,然後按查詢中的名稱對結果進行排序。

2

由於您可能會對數據進行分頁,因此您並不想在前端進行分類,否則您只需將前50個結果中的結果排序爲按字母順序排序的訂單。

相反,你會做這樣的事情

$users = User::orderBy('firstName')->paginate(50) 

然後傳遞到用戶視圖。

目前,它看起來像你將結果數據轉換成一個數組,這是不是真的必要,因爲laravel返回一個集合對象,它具有一些很好的功能,如排序。

編輯:

如果你只是想在路上數據進行排序其目前在你的例子提出,最好的辦法是用usort。這沒有laravel集合的優點,但仍然允許您按照您的要求對數組進行排序。

如果您擁有的數據:

$items = [ 
    ['name' => 'barry'], 
    ['name' => 'alan'] 
]; 

usort($items, function ($a, $b) { return $a['name'] > $b['name'];}); 

會重新排序陣列是

$items = [ 
    ['name' => 'alan'], 
    ['name' => 'barry'] 
]; 

它是按引用傳遞的,所以原本將被修改。

我會建議看看laravel集合類,它提供了一個更好的接口來處理這種數據。

+0

你爲什麼把50放在括號內? – progx

+1

@progx這是每頁的項目數量。你可以選擇任何數字。 – ceejayoz

+0

@ceejayoz我剛剛上傳了一張新圖片,表示呈現數據的數組以及最終呈現數據的控制器中的代碼。你可以看看它,讓我知道我可以如何排序控制器中的FirstName數據?非常感謝 – progx

相關問題