Laravel按特定值排序结果 [英] Laravel ordering results by specific values

查看:336
本文介绍了Laravel按特定值排序结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一行代码从数据库获取结果:

I have this line of code which gets results from a database:

'clanMembers' => User::find(Auth::user() -> clan_id) -> where('clan_id', '=', Auth::user() -> clan_id) -> orderBy('username') -> get()

目前它是按用户名命令的。我希望通过clan_rank字段来改变它。这个clan_rank字段只会包含3个不同的值。这些是:

Currently it orders by the username. I wish to change this to order by the clan_rank field. This clan_rank field will only ever contain 3 different values. These are:

1. Owner
2. Admin
3. Member

我希望有我的结果先与业主订单,然后管理员,然后成员。如何更改我的代码行来实现这些结果?

I wish to have my results ordered with Owners first, then Admin, then members. How can I change my line of code to achieve these results?

推荐答案

您需要使用 orderByRaw

而不是 orderBy 您应该使用的部分

instead of orderBy part you should use

orderByRaw("FIELD(clan_rank , 'Owner', 'Admin', 'Member') ASC");

这篇关于Laravel按特定值排序结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆