我正在使用Yii2,现在我有这样的查询:
$data = $modelClass::find()->select([
'task_group.*',
'count' => 'COUNT(task.id)',
'processed_count' => 'SUM(CASE WHEN task.status=\''.Task::STATUS_PROCESSED.'\' THEN 1 ELSE 0 END)',
'unprocessed_count' => 'SUM(CASE WHEN task.status=\''.Task::STATUS_UNPROCESSED.'\' THEN 1 ELSE 0 END)',
'problem_count' => 'SUM(CASE WHEN task.status=\''.Task::STATUS_PROBLEM.'\' THEN 1 ELSE 0 END)'])
->joinWith('tasks')
->groupBy('task_group.id')->all();
但我认为在Yii2中必须有更好的方法来代表它。我怎样才能正确地重写它?例如,没有内联参数。
答案 0 :(得分:0)
现在我明白了,可以这样做:
task.status=:status_processed
...
->addParams([':status_processed' => Task::STATUS_PROCESSED])