В моей системе мне нужна возможность всегда копировать старую запись в другую таблицу до того, как фактическая таблица получит обновление.
Чтобы администратор мог видеть как новые данные, так и старые данные (для ведения записи старых и новых значений).
для этого я использую метод beforeSave()
public function beforeSave($insert)
{
if (!parent::beforeSave($insert)) {
return false;
}
echo "<pre>before save";print_R($this);die();
return true;
}
в случае обновления я заметил, что $this
возвращает как старые, так и новые записи
$this
содержит:
app\models\Visitor Object (
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 1
[first_name] => new first name
[last_name] => new last name
[phone] => 987654321
[created_at] => 0000-00-00 00:00:00
[updated_at] => 0000-00-00 00:00:00
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 1
[first_name] => old first name
[last_name] => old last name
[phone] => 123456789
[created_at] => 0000-00-00 00:00:00
[updated_at] => 0000-00-00 00:00:00
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
)
если я использую $this->first_name
, он возвращает мне новое значение (новое имя). но как мне получить доступ к старым данным (старое имя), чтобы я мог сохранить их в другой таблице перед обновлением.
Или любое другое предложение для достижения этого полезно.