eee
This commit is contained in:
+19
-4
@@ -510,6 +510,18 @@ abstract class Model extends Component implements ModelInterface, ArrayAccess, \
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getChanges(): array
|
||||
{
|
||||
if (!$this->isNewExample) {
|
||||
return \array_uintersect_assoc($this->_oldAttributes, $this->_attributes);
|
||||
}
|
||||
return $this->_attributes;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $value
|
||||
* @return $this
|
||||
@@ -534,7 +546,7 @@ abstract class Model extends Component implements ModelInterface, ArrayAccess, \
|
||||
return TRUE;
|
||||
}
|
||||
$validate = $this->resolve($rule);
|
||||
if (!$validate->validation()) {
|
||||
if (!$validate->validation($this)) {
|
||||
return \Kiri::getLogger()->failure($validate->getError(), 'mysql');
|
||||
} else {
|
||||
return TRUE;
|
||||
@@ -548,11 +560,14 @@ abstract class Model extends Component implements ModelInterface, ArrayAccess, \
|
||||
*/
|
||||
private function resolve($rule): Validator
|
||||
{
|
||||
$validate = Validator::instance($this->_attributes, $this);
|
||||
$validate = new Validator();
|
||||
foreach ($rule as $val) {
|
||||
$field = array_shift($val);
|
||||
|
||||
$validate->make($field, $val);
|
||||
if (is_string($field)) {
|
||||
$validate->make($this, [$field], $val);
|
||||
} else {
|
||||
$validate->make($this, $field, $val);
|
||||
}
|
||||
}
|
||||
return $validate;
|
||||
}
|
||||
|
||||
+65
-34
@@ -17,12 +17,12 @@ namespace Database;
|
||||
interface ModelInterface
|
||||
{
|
||||
|
||||
/**
|
||||
* @param array|string|int $param
|
||||
* @param null $db
|
||||
* @return ModelInterface|null
|
||||
*/
|
||||
public static function findOne(array|string|int $param, $db = NULL): ?static;
|
||||
/**
|
||||
* @param array|string|int $param
|
||||
* @param null $db
|
||||
* @return ModelInterface|null
|
||||
*/
|
||||
public static function findOne(array|string|int $param, $db = NULL): ?static;
|
||||
|
||||
|
||||
/**
|
||||
@@ -31,44 +31,75 @@ interface ModelInterface
|
||||
public function optimize(): mixed;
|
||||
|
||||
|
||||
/**
|
||||
* @param int $param
|
||||
* @param null $db
|
||||
* @return ModelInterface|null
|
||||
*/
|
||||
public static function primary(int $param, $db = NULL): ?static;
|
||||
/**
|
||||
* @param int $param
|
||||
* @param null $db
|
||||
* @return ModelInterface|null
|
||||
*/
|
||||
public static function primary(int $param, $db = NULL): ?static;
|
||||
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
* @return static
|
||||
*/
|
||||
public static function populate(array $data): static;
|
||||
/**
|
||||
* @param array $data
|
||||
* @return static
|
||||
*/
|
||||
public static function populate(array $data): static;
|
||||
|
||||
|
||||
/**
|
||||
* @return ActiveQuery
|
||||
* return a sql queryBuilder
|
||||
*/
|
||||
public static function query(): ActiveQuery;
|
||||
/**
|
||||
* @return ActiveQuery
|
||||
* return a sql queryBuilder
|
||||
*/
|
||||
public static function query(): ActiveQuery;
|
||||
|
||||
|
||||
/**
|
||||
* @return ?string
|
||||
*/
|
||||
public function getPrimary(): ?string;
|
||||
/**
|
||||
* @return ?string
|
||||
*/
|
||||
public function getPrimary(): ?string;
|
||||
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getTable(): string;
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getTable(): string;
|
||||
|
||||
|
||||
/**
|
||||
* @return Connection
|
||||
*/
|
||||
public function getConnection(): Connection;
|
||||
/**
|
||||
* @return Connection
|
||||
*/
|
||||
public function getConnection(): Connection;
|
||||
|
||||
|
||||
/**
|
||||
* @param string $field
|
||||
* @return mixed
|
||||
*/
|
||||
public function getAttribute(string $field): mixed;
|
||||
|
||||
/**
|
||||
* @param string $field
|
||||
* @return mixed
|
||||
*/
|
||||
public function getOldAttribute(string $field): mixed;
|
||||
|
||||
|
||||
/**
|
||||
* @param string $field
|
||||
* @return mixed
|
||||
*/
|
||||
public function setAttribute(string $field): mixed;
|
||||
|
||||
/**
|
||||
* @param string $field
|
||||
* @return mixed
|
||||
*/
|
||||
public function setOldAttribute(string $field): mixed;
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getChanges(): array;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user