Yii2 методы beforeSave и afterSave

495

В заметке рассмотрены очень важные, на мой взгляд, функции: beforeSave и afterSave, наследуемые от класса BaseActiveRecord, которые можно реализовать в классе модели.

1. beforeSave - метод вызывается перед созданием или редактированием записи:

public function beforeSave($insert)
{
    // если $insert== true значит, метод вызвался при создании записи, иначе при обновлении
    $saveContinue = parent::beforeSave($insert); // если $saveContinue == false, сохранение будет отменено 
    if($insert)
    {
         // здесь, например, можно скорректировать сохраняемые данных
    }
    return $saveContinue ;
}

Чтобы выполнить сохранение данных, эта функция должна вернуть значение true, если вернуть false - сохранение будет отменено.

2. afterSave - метод вызывается после созданиея или редактирования записи:

public function afterSave($insert, $changedAttributes)
{
     parent::afterSave($insert, $changedAttributes);
     if($insert)
     {
         // здесь, например, можно выполнить рассылку писем с новым товаром подписанным пользователям
     }
     else
     {
         // а здесь, рассылку об изменении товара
     }
}

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

Новые статьи

Установка Webmin для Armbian (Orange Pi / Raspberry Pi)
Установка Webmin для Armbian (Orange Pi / Raspberry Pi)

Установка webmin для операционной системы Armbian (Orange Pi / Raspberry Pi). Install webmin for armbian.

Читать далее...
Текстовое поле с выпадающими подсказками при вводе текста C# WPF XAML
Текстовое поле с выпадающими подсказками при вводе текста C# WPF XAML

Простая реализация текстового поля с выпадающими подсказками (аналогично поиску у Яндекс и Google) при вводе текста на языке C# WPF. Реализация пользовательского элемента управления в C#/

Читать далее...
Yii2 advanced доступ из backend к frontend кэшу
Yii2 advanced доступ из backend к frontend кэшу

В заметке описан способ доступа к фронтэнд (frontend) кэшу (cache) advanced приложения из бэкэнда (backend) для php фреймворка Yii2.

Читать далее...
C# паттерн проектирования Одиночка (Singleton)
C# паттерн проектирования Одиночка (Singleton)

Обзор и пример использования шаблона (паттерна) проектирования Одиночка (Singleton) на языке программирования C# (си шарп), достоинства и недостатки паттерна проектирования Синглтон

Читать далее...
Orange Pi / Raspberry Pi - установка и настройка Django в Linux Armbian
Orange Pi / Raspberry Pi - установка и настройка Django в Linux Armbian

Описание процесса установки и настройки python фреймворка django на одноплатных мини компьютерах orange pi / raspberry pi в операционной системе Linux Armbian.

Читать далее...

Это интересно

Текстовое поле с выпадающими подсказками при вводе текста C# WPF XAML
Текстовое поле с выпадающими подсказками при вводе текста C# WPF XAML

Простая реализация текстового поля с выпадающими подсказками (аналогично поиску у Яндекс и Google) при вводе текста на языке C# WPF. Реализация пользовательского элемента управления в C#/

Читать далее...
Yii2 advanced доступ из backend к frontend кэшу
Yii2 advanced доступ из backend к frontend кэшу

В заметке описан способ доступа к фронтэнд (frontend) кэшу (cache) advanced приложения из бэкэнда (backend) для php фреймворка Yii2.

Читать далее...
C# паттерн проектирования Одиночка (Singleton)
C# паттерн проектирования Одиночка (Singleton)

Обзор и пример использования шаблона (паттерна) проектирования Одиночка (Singleton) на языке программирования C# (си шарп), достоинства и недостатки паттерна проектирования Синглтон

Читать далее...
Yii2 установка и настройка advanced приложения
Yii2 установка и настройка advanced приложения

Описание процесса установки и настройки advanced приложения php фреймворка Yii2 с использование composer, рассмотрены возможные "подводные камни", возникающие при установке и настройке Yii2 advanced

Читать далее...
Подключение инфракрасного (ИК) пульта к Arduino
Подключение инфракрасного (ИК) пульта к Arduino

Описание процесса подключения инфракрасного дистанционного пульта управления к arduino, пример arduino скетча для работы с инфракрасным дистанционным пультом

Читать далее...