Laravel:按特定ID排序

ada*_*amj 2 php laravel laravel-4

我一直看起来很疯狂,但我似乎无法通过Laravel的Eloquent找到与此相似的方法:

select id,name 
from friends 
order by id=5 desc
Run Code Online (Sandbox Code Playgroud)

从以下链接获取的示例:mysql SQL:首先是特定项,然后对其余项进行排序

我希望一个简单的Group::orderBy('id', $id, 'DESC')->get()工作,但没有这样的运气.

我也考虑过使用,DBorderBy该类的方法采用完全相同的参数,并且没有特定ID的选项.还有其他选择吗?

非常感谢您的帮助!

Sud*_*oti 5

不确定,但可能你可以尝试使用orderByRaw(),像,

$id = 5;
Group::orderByRaw(DB::raw("FIELD(id, $id)"))
       ->get();
Run Code Online (Sandbox Code Playgroud)

  • 伙计,我他妈的欠你一个!你到底是怎么找到“orderByRaw”的?它根本没有在他们的网站上列出,否则我一定是严重失明。我稍微更改了您的代码,因为 `DB::raw` 没有按预期安静工作,这是我的工作代码:`Group::orderByRaw("id = $user_group_id DESC")->get();` (2认同)
  • @adamj很高兴你明白了.它没有记录,但被添加到Laravel的4.0.8版本中.http://wiki.laravel.io/Changelog_%28Laravel_4%29 :) (2认同)