getOriginal method
Gets the original value(s) before modifications.
When attribute is provided, returns the original value for that specific attribute.
When attribute is null, returns a map of all original attributes.
If no original state is tracked, returns the current value(s).
Example:
final user = await Users.query().where('id', 1).first();
user.setAttribute('name', 'New Name');
print(user.getOriginal('name')); // Original name
print(user.getAttribute('name')); // 'New Name'
Implementation
Object? getOriginal([String? attribute]) {
final original = _getOriginalAttributes();
if (original == null) {
// No original tracked, return current state
if (attribute == null) {
return Map<String, Object?>.from(_ensureAttributes());
}
return _ensureAttributes()[attribute];
}
if (attribute == null) {
return Map<String, Object?>.from(original);
}
return original[attribute];
}