这是我的控制器
public function actionIndex()
{
$query = users::find();
$count = count($users);
$pagination = new Pagination(['totalCount' => $count, 'pageSize'=>20]);
$models = $query->offset($pagination->offset)
->limit($pagination->limit)
->orderBy([new \yii\db\Expression('FIELD (mission, Leader, Right Hand, QA, Member)')])
->all();
return $this->render('index', [
'models' => $models,
'pagination' => $pagination,
]);
}
但它不起作用。我一直收到这个错误
语法错误或访问冲突:1064 SQL语法中出错;检查与您的MariaDB服务器版本对应的手册,以便在第1行“Hand,QA,Member”LIMIT 16 OFFSET 16'附近使用正确的语法 正在执行的SQL是:SELECT * FROM
users
ORDER BY FIELD(任务,领导,右手,QA,成员)LIMIT 16 OFFSET 16
请帮我解决这个问题。谢谢。
答案 0 :(得分:0)
如果您需要按FIELD(列,字符串....)订购,则应使用值
附近的引号->orderBy([new \yii\db\Expression("FIELD (mission, 'Leader', 'Right Hand', 'QA', 'Member')")])