diff --git a/Annotation/Annotation.php b/Annotation/Annotation.php index d50f81ff..cd504d79 100644 --- a/Annotation/Annotation.php +++ b/Annotation/Annotation.php @@ -116,6 +116,9 @@ class Annotation extends Component } $tmp = $this->resolveAnnotations($method, $alias, $object); + if (empty($tmp)) { + continue; + } $this->_classes[$reflect->getName()][$method->getName()] = $tmp; } @@ -177,7 +180,7 @@ class Annotation extends Component } foreach ($this->_classes[$className] as $_method => $class) { if ($method == $_method) { - return [$class, $_method]; + return [$class]; } } return []; diff --git a/Database/ActiveRecord.php b/Database/ActiveRecord.php index 318040f8..fe95d9b5 100644 --- a/Database/ActiveRecord.php +++ b/Database/ActiveRecord.php @@ -310,14 +310,14 @@ class ActiveRecord extends BaseActiveRecord */ public function toArray(): array { - $data = []; $attributes = Snowflake::app()->getAttributes(); $callback = $attributes->getByClass(static::class); - var_dump($callback); - foreach ($this->_attributes as $key => $val) { - $data[$key] = $this->getAttribute($key); + $data = $this->_attributes; + foreach ($callback as $key => $item) { + $data[$key] = call_user_func($item, $data[$key]); } + return array_merge($data, $this->runRelate()); }