Browse Source

Merge pull request #576 from creocoder/ar-set-attribute

ActiveRecord::setAttribute() bugfix
tags/2.0.0-beta
Qiang Xue 11 years ago
parent
commit
e9d7a220cb
  1. 14
      framework/yii/db/ActiveRecord.php

14
framework/yii/db/ActiveRecord.php

@ -523,11 +523,16 @@ class ActiveRecord extends Model
* Sets the named attribute value.
* @param string $name the attribute name
* @param mixed $value the attribute value.
* @throws InvalidParamException if the named attribute does not exist.
* @see hasAttribute
*/
public function setAttribute($name, $value)
{
$this->_attributes[$name] = $value;
if (isset($this->_attributes[$name]) || isset($this->getTableSchema()->columns[$name])) {
$this->_attributes[$name] = $value;
} else {
throw new InvalidParamException(get_class($this) . ' has no attribute named "' . $name . '".');
}
}
/**
@ -567,11 +572,16 @@ class ActiveRecord extends Model
* Sets the old value of the named attribute.
* @param string $name the attribute name
* @param mixed $value the old attribute value.
* @throws InvalidParamException if the named attribute does not exist.
* @see hasAttribute
*/
public function setOldAttribute($name, $value)
{
$this->_oldAttributes[$name] = $value;
if (isset($this->_oldAttributes[$name]) || isset($this->getTableSchema()->columns[$name])) {
$this->_oldAttributes[$name] = $value;
} else {
throw new InvalidParamException(get_class($this) . ' has no attribute named "' . $name . '".');
}
}
/**

Loading…
Cancel
Save