laravel eloquent列表 - 对列值列表进行排序

时间:2013-07-12 05:45:50

标签: laravel eloquent

使用laravel,我在表单上创建一个选择框。我一直在使用帮助器创建选择框,一切正常。

我从数据库中检索选择框的数据,并使用以下内容检索数据:

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

再次一切正常,这将返回预期的数组

我的问题是,我似乎无法对此列表进行排序 - 我尝试添加orderBy()但没有快乐。

除了使用本机php函数之外,是否有一个用于对列表进行排序的laravel方法?

3 个答案:

答案 0 :(得分:63)

你可以放任何你想要的东西,然后列出它。我的意思是:

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

只要lists是链中的最后一个方法,其他方法就可以正常工作。


从Laravel 版本5.3 lists开始弃用,改为使用pluck

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

答案 1 :(得分:4)

您可以尝试:

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

如果不起作用,请在最后投掷->get()

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

答案 2 :(得分:0)

当我

dd(YourModel::pluck('name', 'id'));

我看到它是Collection类,所以我找到了laravel集合,然后找到了sortKeys()方法 所以我这样做:

YourModel::pluck('name', 'id')->sortKeys();