使用laravel,我在表单上创建一个选择框。我一直在使用帮助器创建选择框,一切正常。
我从数据库中检索选择框的数据,并使用以下内容检索数据:
$data = model::lists('name','id')
再次一切正常,这将返回预期的数组
我的问题是,我似乎无法对此列表进行排序 - 我尝试添加orderBy()但没有快乐。
除了使用本机php函数之外,是否有一个用于对列表进行排序的laravel方法?
答案 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();