我想在自定义字段上排序记录,但它在yii2中给我错误,任何人都可以帮助我。
->orderBy(player.PlayerRole, 'G','D','M','F');
其中G,D,M和F是自定义值。这在mysql中运行良好,但在 yii2 中却没有。
我也试过这个
$expression = new Expression('field(player.PlayerRole,G,D,M,F)');
->orderBy($expression)
这是完整的查询
$expression = new Expression('field(player.PlayerRole,G,D,M,F)');
return (new Query())
->select('*')
->from('tablename')`enter code here`
->orderBy(player.PlayerRole, 'G','D','M','F');
->all();
答案 0 :(得分:3)
如本期所述:
请仔细阅读本文档。 orderBy采用数组,数组元素可以是Expression。所以你应该使用$ query-> orderBy(array($ expression))而不是$ query-> orderBy($ expression)。
https://github.com/yiisoft/yii2/issues/553
所以请尝试->orderBy(array($expression))