Yii2:如何使用Query Builder正确构建查询

时间:2016-06-21 14:15:59

标签: yii2 query-builder

我正在使用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中必须有更好的方法来代表它。我怎样才能正确地重写它?例如,没有内联参数。

1 个答案:

答案 0 :(得分:0)

现在我明白了,可以这样做:

task.status=:status_processed
...
->addParams([':status_processed' => Task::STATUS_PROCESSED])