diff --git a/extend/catcher/CatchQuery.php b/extend/catcher/CatchQuery.php index cd67141..d0fa563 100644 --- a/extend/catcher/CatchQuery.php +++ b/extend/catcher/CatchQuery.php @@ -166,11 +166,17 @@ class CatchQuery extends Query * 额外的字段 * * @time 2020年01月13日 - * @param array $fields + * @param $fields * @return CatchQuery */ - public function addFields(array $fields): CatchQuery + public function addFields($fields): CatchQuery { + if (is_string($fields)) { + $this->options['field'][] = $fields; + + return $this; + } + $this->options['field'] = array_merge($this->options['field'], $fields); return $this; @@ -205,4 +211,19 @@ class CatchQuery extends Query return $this; } + + /** + * 新增 Select 子查询 + * + * @time 2020年06月17日 + * @param callable $callable + * @param string $as + * @return $this + */ + public function addSelectSub(callable $callable, string $as) + { + $this->field(sprintf('%s as %s', $callable($this)->buildSql(), $as)); + + return $this; + } } diff --git a/extend/catcher/traits/db/BaseOptionsTrait.php b/extend/catcher/traits/db/BaseOptionsTrait.php index 02ab3de..ae89123 100644 --- a/extend/catcher/traits/db/BaseOptionsTrait.php +++ b/extend/catcher/traits/db/BaseOptionsTrait.php @@ -2,6 +2,8 @@ namespace catcher\traits\db; +use catchAdmin\permissions\model\Users; + trait BaseOptionsTrait { /** @@ -13,7 +15,9 @@ trait BaseOptionsTrait public function getList() { return $this->catchSearch() + ->field('*') ->catchOrder() + ->creator() ->paginate(); }