Сегодня я расскажу про один маленький, но очень полезный и замечательный метод — xPDOObject::isDirty($key);
С помощью этого можно проверить, была ли изменена целевая колонка у нашего объекта (вообще, это конечно совсем не колонка, а только свойство, значение которой хранится в колонке его таблицы, но тем не менее, назовем это так).
Зачем это нам может быть нужно? Допустим, мы хотим препятствовать изменению email-а пользователем. Пропишем проверку:
if($profile->isDirty('email')){ return 'Нельзя менять email!'; }
Получить массив названий всех измененных полей можно в свойстве xPDOObject::_dirty.