Receio Yii 2 Query Builder é para consultas selecionadas só.
Para atualizar consultas você tem pelo menos três opções:
-
SQL bruto:
\Yii::$app->db->createCommand('update user set status = 1 where age > 30')->execute();
-
SQL bruto com espaços reservados (para evitar injeção de SQL)
\Yii::$app->db->createCommand('update user set status = :status where age > 30')->bindValue(':status','1')->execute();
-
método update()
// update user set status = 1 where age > 30 \Yii::$app->db->createCommand()->update('user', ['status' => 1], 'age > 30')->execute();
Mais informações aqui: