按自定义值Yii2排序

时间:2015-10-07 07:24:23

标签: mysql sql-order-by yii2

我想在自定义字段上排序记录,但它在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();

1 个答案:

答案 0 :(得分:3)

如本期所述:

  

请仔细阅读本文档。 orderBy采用数组,数组元素可以是Expression。所以你应该使用$ query-> orderBy(array($ expression))而不是$ query-> orderBy($ expression)。

https://github.com/yiisoft/yii2/issues/553

所以请尝试->orderBy(array($expression))