2013-07-12 69 views
26

使用laravel,我在表單上創建一個選擇框。我一直在使用助手來創建選擇框,一切工作正常。laravel雄辯列表 - 對列值列表排序

我從數據庫檢索選擇框的數據,並使用以下方法來檢索數據:

$data = model::lists('name','id') 

再次一切工作正常,這將返回預期的陣列

我的問題,雖然是我似乎無法排序此列表 - 我嘗試添加orderBy()但沒有喜悅。

除了使用本地php函數之外,還有一種用於排序列表的laravel方法嗎?

+0

大問題。通常需要在查詢中放置where等,以創建一個數組來填充Laravel的選擇。 –

回答

63

你可以把任何你想要的,然後列出它。我的意思是:

model::orderBy('orderByColumn')->lists('name', 'id'); 

只要lists是鏈中的最後一個方法,其他的方法工作得很好。


從Laravel 版本5.3lists開始將是棄用,使用pluck代替:

model::orderBy('orderByColumn')->pluck('name', 'id'); 
+1

您也可以使用PHP數組排序[PHP:Sorting arrays](http://es1.php.net/manual/en/array.sorting.php ) –

+0

優秀 - 謝謝。我試圖在列表之後排序。我沒有意識到這些功能的順序。再次感謝 – Ray

+0

謝謝,謝謝,謝謝@ umut-sirin。來自底特律的愛! –

4

你可以試試:

$data = model::select('name','id')->orderBy('name'); 

如果還是不行,在年底折騰了->get()

$data = model::select('name','id')->orderBy('name')->get(); 
+0

嗨 - 我也試過這個,但努力實現該數據的目的是在html選擇助手中的對象。結果是正確的,但無法執行。列表更容易,因爲它包含我需要的確切數據 – Ray