Jar*_*čík 2 sorting laravel eloquent laravel-collection
我有具有不同角色的数据库表,我需要收集具有角色的项目owner将放在最后。这是数据库示例:
| ID | 角色 |
|---|---|
| 1 | 行政 |
| 2 | 用户 |
| 3 | 用户 |
| 4 | 所有者 |
| 5 | 用户 |
如何使用这些数据对集合进行排序以获取具有owner最后角色的项目?我只能想到按字母顺序对其进行排序,保存到某个变量并从集合中删除具有所有者角色的记录,然后将其作为最后粘贴到集合中。但这对我来说似乎不必要地复杂,难道没有更简单的方法吗?
我需要这个的原因是因为我需要删除所有选定的用户并确保用户/所有者是最后一个。
您可以使用条件渲染。为此,您需要使用DB::raw
示例:
Model::select('id', 'role')
->orderBy(DB::raw('role = "owner"'), 'ASC');
Run Code Online (Sandbox Code Playgroud)
或使用速记:
Model::select('id', 'role')->orderByRaw("role = 'owner' ASC");
Run Code Online (Sandbox Code Playgroud)
它会放在owners最后。
在这里检查小提琴:http ://sqlfiddle.com/#!9/9d2b64/2
| 归档时间: |
|
| 查看次数: |
40 次 |
| 最近记录: |