gpt4 book ai didi

yii2 - 在 Yii2 中按字段排序

转载 作者:行者123 更新时间:2023-12-01 00:51:44 27 4
gpt4 key购买 nike

我遇到了这个问题,但没有找到任何使用 yii 仪器的解决方案。有人知道如何解决这个问题吗?

最终,我使用了这个糟糕的代码

$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();

使用 orderByFIELD (...)https://github.com/yiisoft/yii2/issues/553

关于yii2 - 在 Yii2 中按字段排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28856562/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com