mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-08 07:32:48 +08:00
Model类的validate方法支持第三个参数 使用批量验证
This commit is contained in:
@@ -101,6 +101,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
protected $failException = false;
|
protected $failException = false;
|
||||||
// 全局查询范围
|
// 全局查询范围
|
||||||
protected $useGlobalScope = true;
|
protected $useGlobalScope = true;
|
||||||
|
protected $batchValidate = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化过的模型.
|
* 初始化过的模型.
|
||||||
@@ -854,9 +855,10 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
* @access public
|
* @access public
|
||||||
* @param array|string|bool $rule 验证规则 true表示自动读取验证器类
|
* @param array|string|bool $rule 验证规则 true表示自动读取验证器类
|
||||||
* @param array $msg 提示信息
|
* @param array $msg 提示信息
|
||||||
|
* @param bool $batch 批量验证
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function validate($rule = true, $msg = [])
|
public function validate($rule = true, $msg = [], $batch = false)
|
||||||
{
|
{
|
||||||
if (is_array($rule)) {
|
if (is_array($rule)) {
|
||||||
$this->validate = [
|
$this->validate = [
|
||||||
@@ -866,6 +868,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
} else {
|
} else {
|
||||||
$this->validate = true === $rule ? $this->name : $rule;
|
$this->validate = true === $rule ? $this->name : $rule;
|
||||||
}
|
}
|
||||||
|
$this->batchValidate = $batch;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -891,6 +894,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
protected function validateData($data, $rule = null)
|
protected function validateData($data, $rule = null)
|
||||||
{
|
{
|
||||||
$info = is_null($rule) ? $this->validate : $rule;
|
$info = is_null($rule) ? $this->validate : $rule;
|
||||||
|
|
||||||
if (!empty($info)) {
|
if (!empty($info)) {
|
||||||
if (is_array($info)) {
|
if (is_array($info)) {
|
||||||
$validate = Loader::validate();
|
$validate = Loader::validate();
|
||||||
@@ -906,7 +910,9 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
$validate->scene($scene);
|
$validate->scene($scene);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!$validate->check($data)) {
|
$batch = $this->batchValidate;
|
||||||
|
|
||||||
|
if (!$validate->batch($batch)->check($data)) {
|
||||||
$this->error = $validate->getError();
|
$this->error = $validate->getError();
|
||||||
if ($this->failException) {
|
if ($this->failException) {
|
||||||
throw new ValidateException($this->error);
|
throw new ValidateException($this->error);
|
||||||
|
|||||||
Reference in New Issue
Block a user