Mysql 按自定义值排序Yii2

Mysql 按自定义值排序Yii2,mysql,sql-order-by,yii2,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 Expres

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

如本期所述:

请仔细阅读这份文件。orderBy接受数组,数组元素可以是表达式。因此,您应该使用$query->orderBy(数组($expression))而不是$query->orderBy($expression)


因此,请尝试
->orderBy(array($expression))

您能提供大部分代码和对象的定义方式吗?请查看上面帖子中给出的完整查询。