0
を使用して、適切にクエリーを構築し、私は今、このようなクエリを持ってする方法:Yii2:私は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つのインスタンスです。これは、この形式でもっと読みやすくなります。 – topher
このクエリで、Task :: STATUS_PROCESSEDおよび他のよく知られている定数のプレースホルダを使用できますか?私はYii2 DAOで見ましたが、クエリービルダーでは見えませんでした。 –