Как и другое решение упомянутого вопроса, вы можете использовать счетчики обновлений:
Обновление счетчиков Обычной задачей является увеличение или уменьшение столбца в таблице базы данных. Мы называем эти столбцы «встречными столбцами». Вы можете использовать updateCounters()
для обновления одного или нескольких столбцов счетчика. Например,
$posts = TableName::find()->where(['between', 'id', "1", "10" ])->all();
$posts->updateCounters(['status_name' => 1]);
Примечание : если вы используете yii \ db \ ActiveRecord :: save () для обновления столбца счетчика, вы можете получить неточный результат, потому что, вероятно, один и тот же счетчик сохраняется несколькими запросами, которые читают и записывают одно и то же значение счетчика.
Обновление: Как упомянуто в комментариях для событий, таких как EVENT_AFTER_UPDATE
для произойти Вы должны сделать что-то вроде этого:
$model = TableName::findOne()->where(['between', 'id', "1", "10" ])->all();
$model->status_name = new \yii\db\Expression('status_name + 1');
$model->save();
Эта проблема обсуждалась здесь: Событие EVENT_AFTER_UPDATE не происходит, когда updateCounters