andruxin
@andruxin

Yii. Можно ли в beforeSave посмотреть, какие поля модели будут обновляться?

Можно ли в beforeSave посмотреть, какие поля модели будут обновляться? И как?
  • Вопрос задан
  • 3226 просмотров
Решения вопроса 1
metamorph
@metamorph
Обновляться будут все поля.

Если хотите узнать, какие поля были изменены - сохраняйте первоначальные значения в afterFind и сравнивайте с новыми в beforeSave.

Возможность обновлять только dirty-поля появилась только во второй версии.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1. в beforeSave доставать объект из базы и делать diff проперти _attributes.
2. перегрузить волшебный set метод, и запоминать что менялось, записывая куда-то поле, измененное и старое значение.
Ответ написан
Комментировать
TekVanDo
@TekVanDo
Javascript Developer
Ну как минимум можно в beforeSave выбрать текущий объект из базы и сравнить его поля с новым.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы