diff --git a/Database/ActiveRecord.php b/Database/ActiveRecord.php index 555e7104..af509d2c 100644 --- a/Database/ActiveRecord.php +++ b/Database/ActiveRecord.php @@ -275,11 +275,11 @@ class ActiveRecord extends BaseActiveRecord public function toArray(): array { $data = $this->_attributes; - foreach ($this->getAnnotation() as $key => $item) { + foreach ($this->getAnnotation('get') as $key => $item) { if (!isset($data[$key])) { continue; } - $data[$key] = call_user_func([$this, $item[1]], $data[$key]); + $data[$key] = call_user_func($item, $data[$key]); } $data = array_merge($data, $this->runRelate()); $this->recover(); diff --git a/Database/Base/BaseActiveRecord.php b/Database/Base/BaseActiveRecord.php index df5086a2..10f454b8 100644 --- a/Database/Base/BaseActiveRecord.php +++ b/Database/Base/BaseActiveRecord.php @@ -820,11 +820,12 @@ abstract class BaseActiveRecord extends Component implements IOrm, ArrayAccess /** + * @param string $type * @return array */ - protected function getAnnotation(): array + protected function getAnnotation($type = 'get'): array { - return $this->_annotations; + return $this->_annotations[$type] ?? []; }