Программирование, веб-кодинг

Замечательные методы beforeSave() и afterSave() в Yii2

Учимся пользоваться этими методами

2 полезных метода, с помощью которых можно устроить дополнительную обработку данных.

Например, вы хотите поменять формат даты перед сохранением в базу данных. Или сделать превью изображения, обезав его до сохранения в папку.

В модель добавляете afterSave():

public function afterSave($insert, $changedAttributes){
    parent::afterSave($insert, $changedAttributes);
    //... ваш код
}

Здесь мы сначала вызываем родительский afterSave, передавая в него параметры, а уже потом делаем необходимые нам действия.

beforeSave():

public function beforeSave($insert)
{
    if (parent::beforeSave($insert)) {
        //... ваш код
        return true;
    }
    return false;
}

Здесь нам необходимо вернуть результат родительского метода, иначе потом при дальнейшем сохранении модели $model->save() получим false и сохранения модели не произойдёт. И ошибок мы никаких не получим.


Читайте также