Сравнение и отправка изменений по почте

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
smoln
Сообщения: 1
Зарегистрирован: 2022.07.26, 11:42

Сравнение и отправка изменений по почте

Сообщение smoln »

Добрый день. Есть задача в 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 и уже потом задействовать контроллер для сравнения и отправки?
Ответить