getOriginal method

Object? getOriginal([
  1. String? attribute
])
inherited

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];
}