繁体   English   中英

如何防止 whereRaw 自动对我的收藏进行排序?

[英]How to prevent whereRaw from automatically sort my collection?

我有一个 id 列表,它们是排序后的集合的 id,例如:

$orderedIds = "2,18,4,1,17,5,6,16,15,14,13,11,12,10,9,8,7,3"

我想像这样用whereRaw来挑选它们:

$result = Collection::whereRaw("FIELD(id, ".$orderedIds." )");

但结果会自动按 id 排序,这意味着集合 output 从字面上看就是原始集合:

[
 {
   "id": 1,
   ...
 }, {
   "id": 2,
   ...
 }, {
   "id": 3,
   ...
 }
]

whereRaw的任何选项,或任何其他方式让我实现排序集合?

尝试这个

 Collection::whereIn('id',$orderedId)->orderByRaw(DB::raw("FIELD(id, $orderedId)"))->get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM