2013-07-12 70 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