YII2 как получить старые значения модели?

В Yii2 можно получить старые значения модели после ее обновления с использованием метода getOldAttributes(). Этот метод вернет ассоциативный массив, в котором ключами будут имена атрибутов, а значениями - старые значения этих атрибутов.

Прежде чем использовать метод getOldAttributes(), необходимо убедиться, что модель была обновлена. Для этого можно проверить значение свойства $isNewRecord. Если оно равно false, значит модель была сохранена или обновлена.

Ниже приведен пример кода, демонстрирующий использование метода getOldAttributes():

// Получаем экземпляр модели по ее первичному ключу
$model = ModelName::findOne($id);

// Обновляем атрибуты модели
$model->attribute1 = $newValue1;
$model->attribute2 = $newValue2;

// Проверяем, что модель является обновленной 
if (!$model->isNewRecord) {
    // Получаем старые значения атрибутов
    $oldValues = $model->getOldAttributes();
    
    // Выводим старые значения атрибутов
    foreach ($oldValues as $attribute => $oldValue) {
        echo "Старое значение атрибута {$attribute}: {$oldValue} <br>";
    }
}

Этот код получит экземпляр модели по первичному ключу, обновит ее атрибуты, а затем проверит, является ли модель обновленной. Если это так, то будет получен массив со старыми значениями атрибутов, и эти значения будут выведены на экран.

Надеюсь, данный ответ был полезен и помог вам разобраться с получением старых значений модели в Yii2. Если у вас возникнут еще вопросы, не стесняйтесь задавать их.