laravel - Laravel Collection - 将特定项目放在最后一个位置
问题描述
我有具有不同角色的数据库表,我需要owner
将具有角色的项目放在最后的集合。这是数据库示例:
ID | 角色 |
---|---|
1 | 行政 |
2 | 用户 |
3 | 用户 |
4 | 所有者 |
5 | 用户 |
如何使用这些数据对集合进行排序以获取owner
最后一个角色的项目?我只能考虑按字母顺序对其进行排序,保存到某个变量并从集合中删除具有所有者角色的记录,然后将其粘贴到集合中。但这对我来说似乎不必要地复杂,没有更简单的方法吗?
我需要这个的原因是因为我需要删除所有选定的用户并确保用户/所有者是最后一个。
解决方案
您可以使用条件渲染。为此,您需要使用DB::raw
示例:
Model::select('id', 'role')
->orderBy(DB::raw('role = "owner"'), 'ASC');
或使用速记:
Model::select('id', 'role')->orderByRaw("role = 'owner' ASC");
它将放在owners
最后。
在这里检查小提琴:http ://sqlfiddle.com/#!9/9d2b64/2
推荐阅读
- amazon-web-services - 如何拒绝在短时间内发送两次相同的 POST 请求
- sql - 尝试在 sql 中使用 '\copy' 时不断出错
- arrays - 我需要创建一个函数来查找“下一场比赛”(继续寻找下一场比赛) home_team_name (JSON, getDataAsynch) 我只得到最后一场比赛
- database - 如何在 Power BI 中构建映射负责人姓名及其特定工作范围的数据库
- c# - 如何将用户给定的值插入到c#中的给定数组中
- vue.js - 关于 JSX 的 Vue 模板中的 ESLint 错误
- android - Android NumberPicker 在加载视图时渲染滚动条
- amazon-timestream - 示例插入语句 aws timestream DB
- react-native - 如何使用 react-native-fs 库访问 Android 10 设备上的 USB OTG 磁盘?
- tableau-api - Tableau - 自动存档历史数据