|
@@ -2,6 +2,8 @@
|
|
|
|
|
|
|
|
namespace yiins\components;
|
|
namespace yiins\components;
|
|
|
|
|
|
|
|
|
|
+use yiins\helpers\VariableHelper;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* Class ActiveRecord
|
|
* Class ActiveRecord
|
|
|
* @package base\components
|
|
* @package base\components
|
|
@@ -19,6 +21,7 @@ class ActiveRecord extends \CActiveRecord
|
|
|
if (!$className) {
|
|
if (!$className) {
|
|
|
$className = static::class;
|
|
$className = static::class;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
return parent::model($className);
|
|
return parent::model($className);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -160,15 +163,9 @@ class ActiveRecord extends \CActiveRecord
|
|
|
*/
|
|
*/
|
|
|
public function castAs($destination)
|
|
public function castAs($destination)
|
|
|
{
|
|
{
|
|
|
- if (get_class($this) === $destination) {
|
|
|
|
|
- return $this;
|
|
|
|
|
- }
|
|
|
|
|
- if (!is_subclass_of($destination, get_class($this)) && !is_subclass_of(get_class($this), $destination)) {
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
- $result = unserialize(preg_replace('/^O:\d+:"[^"]++"/', 'O:' . strlen($destination) . ':"' . $destination . '"',
|
|
|
|
|
- serialize($this)));
|
|
|
|
|
|
|
+ $result = VariableHelper::cast($this, $destination);
|
|
|
$result->refresh();
|
|
$result->refresh();
|
|
|
|
|
+
|
|
|
return $result;
|
|
return $result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -193,6 +190,7 @@ class ActiveRecord extends \CActiveRecord
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
return $attributes;
|
|
return $attributes;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -201,6 +199,7 @@ class ActiveRecord extends \CActiveRecord
|
|
|
if (($tableName = static::getTableName()) === null) {
|
|
if (($tableName = static::getTableName()) === null) {
|
|
|
return parent::tableName();
|
|
return parent::tableName();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
return $tableName;
|
|
return $tableName;
|
|
|
}
|
|
}
|
|
|
|
|
|