在雄辩的ORM中的自然秩序,Laravel 4

在雄辩的ORM中的自然秩序,Laravel 4,laravel,laravel-4,eloquent,Laravel,Laravel 4,Eloquent,如何在“雄辩的ORM”中获得“自然秩序”?在表中,我有一列“文本”(字符串)。 正常顺序:Model::orderBy('text') 我需要这个: 'value 1' 'value 3' 'value 8' 'value 12' 'value 23' 有什么想法吗?您可以添加一个原始查询并执行以下操作: Model::orderBy(DB::raw('LENGTH(text), text')); 对于Laravel,这也适用于: $collection = $collection-&g

如何在“雄辩的ORM”中获得“自然秩序”?在表中,我有一列“文本”(字符串)。
正常顺序:Model::orderBy('text')

我需要这个:

'value 1'
'value 3'
'value 8'
'value 12'
'value 23'  

有什么想法吗?

您可以添加一个原始查询并执行以下操作:

Model::orderBy(DB::raw('LENGTH(text), text'));

对于Laravel,这也适用于:

$collection = $collection->sortBy('order', SORT_NATURAL, true);

美好的这两个文本是什么意思?一个引用行名称,另一个引用?我不知道sortBy接受了第二个(或第三个)参数。这有助于修复我的Laravel 5.2集合排序。尽管Collection.php文件中的sortBy函数显示它使用SORT_REGULAR作为默认的第二个参数(事后看来这是有意义的),但Laravel文档并未将其显示为选项()。最后我使用了:Item::where($itemQueryArray)->with($modelName)->get()->sortBy($sortText,SORT_STRING | SORT_FLAG_CASE);
$collection = $collection->sortBy('order', SORT_NATURAL, true);