From 78cf1b2a9a2a1fa09b9649e50e8ce1846c8d6d67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Fri, 26 Mar 2021 19:09:54 +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/Condition/InCondition.php | 3 ++- Database/Traits/QueryTrait.php | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Database/Condition/InCondition.php b/Database/Condition/InCondition.php index e68d1b74..c11cb487 100644 --- a/Database/Condition/InCondition.php +++ b/Database/Condition/InCondition.php @@ -23,8 +23,9 @@ class InCondition extends Condition { if (is_array($this->value)) { return sprintf('%s IN (%s)', $this->column, implode(',', $this->value)); + } else { + return sprintf('%s IN (%s)', $this->column, $this->value); } - return ''; } } diff --git a/Database/Traits/QueryTrait.php b/Database/Traits/QueryTrait.php index 134ecf24..e49d7f80 100644 --- a/Database/Traits/QueryTrait.php +++ b/Database/Traits/QueryTrait.php @@ -702,7 +702,10 @@ trait QueryTrait */ public function in($columns, $value): static { - if (empty($value) || !is_array($value)) { + if ($value instanceof Closure) { + $value = $this->makeClosureFunction($value); + } + if (empty($value)) { $value = [-1]; } $this->where[] = ['IN', $columns, $value];