Compare commits

...

6 Commits

Author SHA1 Message Date
as2252258 94857ecb46 eee 2025-02-17 16:29:10 +08:00
as2252258 0f0a3349fb eee 2025-02-17 16:26:32 +08:00
as2252258 7fb9c3ea05 eee 2025-01-18 20:28:24 +08:00
as2252258 11a939e8a1 eee 2024-12-31 15:52:20 +08:00
as2252258 1666af9906 eee 2024-12-29 21:34:12 +08:00
as2252258 78f7faba55 eee 2024-12-29 21:10:58 +08:00
3 changed files with 1872 additions and 1869 deletions
+2 -2
View File
@@ -692,7 +692,7 @@ abstract class Model extends Component implements ModelInterface, ArrayAccess, \
public function __set(string $name, mixed $value): void public function __set(string $name, mixed $value): void
{ {
$prefix = 'set' . ucfirst($name); $prefix = 'set' . ucfirst($name);
if (method_exists($name, $prefix)) { if (method_exists($this, $prefix)) {
$this->{$prefix}($value); $this->{$prefix}($value);
return; return;
} }
@@ -766,7 +766,7 @@ abstract class Model extends Component implements ModelInterface, ArrayAccess, \
*/ */
protected function withRelate(string $name): mixed protected function withRelate(string $name): mixed
{ {
$response = $this->$name(); $response = $this->{'get' . ucfirst($name)}();
if ($response instanceof \Database\Traits\Relation) { if ($response instanceof \Database\Traits\Relation) {
$response = $response->get(); $response = $response->get();
} }
+3 -2
View File
@@ -1,4 +1,5 @@
<?php /** @noinspection ALL */ <?php
/** @noinspection ALL */
declare(strict_types=1); declare(strict_types=1);
@@ -189,7 +190,7 @@ class SqlBuilder extends Component
if (is_null($value)) { if (is_null($value)) {
return $keys; return $keys;
} }
if (preg_match('/^[+|-]\s\d+$/', $value)) { if (preg_match('/^[+|-]\s\d+$/', (string)$value)) {
$keys[] = $key . '=' . $key . ' ' . $value; $keys[] = $key . '=' . $key . ' ' . $value;
} else { } else {
$this->query->pushParam($value); $this->query->pushParam($value);
+11 -9
View File
@@ -793,20 +793,22 @@ abstract class QueryTrait extends Component implements ActiveQueryInterface, ISq
/** /**
* @param string $columns * @param string $columns
* @param array|Closure $value * @param array|Closure|Query $value
* *
* @return $this * @return $this
* @throws * @throws Exception
*/ */
public function whereIn(string $columns, array|Closure $value): static public function whereIn(string $columns, array|Closure|Query $value): static
{ {
if ($value instanceof Closure) { if (is_array($value)) {
$value = $this->makeClosureFunction($value); if (count($value) < 1) throw new Exception('Value must be an not empty array');
}
if (count($value) < 1) {
$value = [-1];
}
$this->where[] = $columns . ' IN (' . implode(',', $value) . ')'; $this->where[] = $columns . ' IN (' . implode(',', $value) . ')';
} else if ($value instanceof Query) {
$this->where[] = $columns . ' IN (' . $value->build() . ')';
} else {
$this->where[] = $columns . ' IN (' . $this->makeClosureFunction($value) . ')';
}
return $this; return $this;
} }