From e2092648bc91312e8f2c1353f14517afda5391bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Mon, 9 Aug 2021 17:02:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Database/SqlBuilder.php | 2 +- Database/Traits/When.php | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Database/SqlBuilder.php b/Database/SqlBuilder.php index 3e1e38d5..406f4267 100644 --- a/Database/SqlBuilder.php +++ b/Database/SqlBuilder.php @@ -24,7 +24,7 @@ class SqlBuilder extends Component /** - * @param $query + * @param ISqlBuilder|null $query * @return $this * @throws Exception */ diff --git a/Database/Traits/When.php b/Database/Traits/When.php index 0846bd45..9cbb06b1 100644 --- a/Database/Traits/When.php +++ b/Database/Traits/When.php @@ -5,9 +5,11 @@ namespace Database\Traits; use Database\ActiveQuery; +use Database\ISqlBuilder; use Database\Query; use Exception; use JetBrains\PhpStorm\Pure; +use Snowflake\Exception\NotFindClassException; /** @@ -17,7 +19,7 @@ use JetBrains\PhpStorm\Pure; class When { - public ActiveQuery|QueryTrait $query; + public ActiveQuery|ISqlBuilder $query; private array $_condition = []; @@ -28,21 +30,23 @@ class When /** * CaseWhen constructor. * @param string $column - * @param ActiveQuery|QueryTrait $activeQuery + * @param ActiveQuery|ISqlBuilder $activeQuery */ - public function __construct(public string $column, public ActiveQuery|QueryTrait $activeQuery) + public function __construct(public string $column, public ActiveQuery|ISqlBuilder $activeQuery) { $this->_condition[] = 'CASE ' . $column; } /** - * @param array|string $condition + * @param array|\Closure $condition * @param string $then * @return $this + * @throws \ReflectionException + * @throws NotFindClassException * @throws Exception */ - public function when(array|string $condition, string $then): static + public function when(array|\Closure $condition, string $then): static { $this->_condition[] = sprintf('WHEN %s THEN %s', $this->activeQuery->makeNewSqlGenerate() ->where($condition)