Добрый день. Есть задача в yii1 сравнить данные до и перед записью в базу и отправить письмо на почту с указанием различий.
Как делаю сейчас, я получаю определленный массив в контроллере до записив базу $arr1=$model->attributes['feature'] , , после записи $model->save() я получаю второй массив $arr2=$model->attributes['feature'] он уже обновленный, в представлении сраниваю(может сравнивать тоже нужно в контроллере?) и отправляю по почте.
Вот код контроллера
$model = $this->loadModel($id);
$arr1=$model->attributes['feature'];
if (isset($_POST['SedUnit'])) {
$model->attributes = $_POST['SedUnit'];
if ($model->save()) {
$arr2=$model->attributes['feature'];
$subj="Пользователь ".Yii::app()->user->name." внес изменения в оборудование ";
$body = ['arr1' => $arr1,'arr2' =>$arr2];
$sendOK=$this->sendMessage($subj, $body);
Yii::app()->user->setFlash('success', "Информация сохранена.");
} else {
Yii::app()->user->setFlash('error', "Не удалось сохранить.");
}
}
$this->render($view, [
'model' => $model,
'form' => new CForm($model->formConfig, $model),
]);
Правильно ли я делаю, или это нужно все проверять в модели через beforeSave и afterSave и уже потом задействовать контроллер для сравнения и отправки?