2015-10-07 76 views
3

我想對自定義字段進行排序記錄,但它給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(); 
+0

你能提供大部分代碼的方式和對象的界定? –

+0

請看看上面的帖子中給出的完整查詢。 –

回答

3

正如在這個問題提到:

請閱讀文檔小心。 orderBy接受一個數組,一個數組元素可以是一個表達式。所以你應該使用$ query-> orderBy(array($ expression))而不是$ query-> orderBy($ expression)。

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

所以儘量->orderBy(array($expression))