脚本宝典收集整理的这篇文章主要介绍了Yii2中的按字段排序,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
最终,我使用了这个糟糕的代码
$params = []; foreach ($reciPEIds as $i => $recipeid) { $params[':id_'.$i] = $recipeId; } $recipes = Recipes::findBysql( 'SELECT * From {{%recipes}} WHERE `id` IN ('.implode(',',array_keys($params)).') ORDER BY FIELD (id,'.implode(',array_reverse(array_keys($params))).') LIMIT :limit',$params + [':limit' => $this->count] ) ->all();
如何解决:: find()?
UPD:应该是这样的
$recipes = Recipes::find() ->where(['id' => $recipeIds]) ->orderBy(['id' => array_reverse($recipeIds)]) ->limit($this->count) ->all();
$recipes = Recipes::find() ->where(['in','id',$recipeIds]) ->orderBy([new \yii\db\ExPression('FIELD (id,' . implode(',array_reverse(array_keys($params))) . ')')]) ->limit($this->count) ->all();
有关使用OrderBy和FIELD(…)的信息,请参阅https://github.com/yiisoft/yii2/issues/553
以上是脚本宝典为你收集整理的Yii2中的按字段排序全部内容,希望文章能够帮你解决Yii2中的按字段排序所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。