public function getOldPrimaryKey($asArray = false)
    {
        $keys = $this->primaryKey();
        if (empty($keys)) {
            throw new Exception(get_class($this) . ' does not have a primary key. You should either define a primary key for the corresponding table or override the primaryKey() method.');
        }
        if (!$asArray && count($keys) === 1) {
            return isset($this->_oldAttributes[$keys[0]]) ? $this->_oldAttributes[$keys[0]] : null;
        }

        $values = [];
        foreach ($keys as $name) {
            $values[$name] = isset($this->_oldAttributes[$name]) ? $this->_oldAttributes[$name] : null;
        }

        return $values;
    }
public function getOldPrimaryKey($asArray = false)
    {
        $keys = $this->primaryKey();
        if (empty($keys)) {
            throw new Exception(get_class($this) . ' does not have a primary key. You should either define a primary key for the corresponding table or override the primaryKey() method.');
        }
        if (!$asArray && count($keys) === 1) {
            return isset($this->_oldAttributes[$keys[0]]) ? $this->_oldAttributes[$keys[0]] : null;
        }

        $values = [];
        foreach ($keys as $name) {
            $values[$name] = isset($this->_oldAttributes[$name]) ? $this->_oldAttributes[$name] : null;
        }

        return $values;
    }
Returns the old primary key value(s).
This refers to the primary key value that is populated into the record
after executing a find method (e.g. find(), findOne()).
The value remains unchanged even if the primary key attribute is manually assigned with a different value.
@param bool $asArray whether to return the primary key value as an array. If `true`,
the return value will be an array with column name as key and column value as value.
If this is `false` (default), a scalar value will be returned for non-composite primary key.
@property mixed The old primary key value. An array (column name => column value) is
returned if the primary key is composite. A string is returned otherwise (null will be
returned if the key value is null).
@return mixed the old primary key value. An array (column name => column value) is returned if the primary key
is composite or `$asArray` is `true`. A string is returned otherwise (null will be returned if
the key value is null).
@throws Exception if the AR model does not have a primary key