Compare commits

...

2 Commits

Author SHA1 Message Date
as2252258 e5453807f2 eee 2024-09-05 15:42:24 +08:00
as2252258 5a6f6da70a eee 2024-09-02 12:12:39 +08:00
2 changed files with 45 additions and 3 deletions
+43 -1
View File
@@ -73,6 +73,48 @@ class ActiveQuery extends QueryTrait implements ISqlBuilder
}
/**
* @param string $column
* @param int|float $amount
* @return bool
*/
public function increment(string $column, int|float $amount = 1): bool
{
return (bool)$this->buildCommand($this->builder->mathematics([$column => $amount]))->exec();
}
/**
* @param array $attributes
* @return bool
*/
public function increments(array $attributes): bool
{
return (bool)$this->buildCommand($this->builder->mathematics($attributes))->exec();
}
/**
* @param string $column
* @param int|float $amount
* @return bool
*/
public function decrement(string $column, int|float $amount = 1): bool
{
return (bool)$this->buildCommand($this->builder->mathematics([$column => $amount], '-'))->exec();
}
/**
* @param array $attributes
* @return bool
*/
public function decrements(array $attributes): bool
{
return (bool)$this->buildCommand($this->builder->mathematics($attributes, '-'))->exec();
}
/**
* @throws
*/
@@ -95,7 +137,7 @@ class ActiveQuery extends QueryTrait implements ISqlBuilder
return;
}
if (Context::inCoroutine()) {
Coroutine::create(fn() => $closure($data));
Coroutine::create(fn () => $closure($data));
} else {
call_user_func($closure, $data);
}
+2 -2
View File
@@ -223,8 +223,8 @@ abstract class Model extends Component implements ModelInterface, ArrayAccess, \
*/
public function getPrimaryValue(): ?int
{
if ($this->hasPrimary()) {
return (int)$this->_oldAttributes[$this->getPrimary()] ?? null;
if ($this->hasPrimary() && isset($this->_oldAttributes[$this->getPrimary()])) {
return (int)$this->_oldAttributes[$this->getPrimary()];
} else {
return null;
}