mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 15:12:48 +08:00
Controller和Model类增加failException方法 用于设置验证失败后是否抛出异常
This commit is contained in:
@@ -13,6 +13,7 @@ namespace think;
|
|||||||
|
|
||||||
\think\Loader::import('controller/Jump', TRAIT_PATH, EXT);
|
\think\Loader::import('controller/Jump', TRAIT_PATH, EXT);
|
||||||
|
|
||||||
|
use think\Exception;
|
||||||
use think\Request;
|
use think\Request;
|
||||||
use think\View;
|
use think\View;
|
||||||
|
|
||||||
@@ -24,6 +25,8 @@ class Controller
|
|||||||
protected $view = null;
|
protected $view = null;
|
||||||
// Request实例
|
// Request实例
|
||||||
protected $request;
|
protected $request;
|
||||||
|
// 验证失败是否抛出异常
|
||||||
|
protected $failException = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 前置操作方法列表
|
* 前置操作方法列表
|
||||||
@@ -136,6 +139,18 @@ class Controller
|
|||||||
$this->view->engine($engine);
|
$this->view->engine($engine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置验证失败后是否抛出异常
|
||||||
|
* @access public
|
||||||
|
* @param bool $fail 是否抛出异常
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function failException($fail = true)
|
||||||
|
{
|
||||||
|
$this->failException = $fail;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 验证数据
|
* 验证数据
|
||||||
* @access public
|
* @access public
|
||||||
@@ -170,7 +185,11 @@ class Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!$v->check($data)) {
|
if (!$v->check($data)) {
|
||||||
return $v->getError();
|
if ($this->failException) {
|
||||||
|
throw new Exception($v->getError());
|
||||||
|
} else {
|
||||||
|
return $v->getError();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ namespace think;
|
|||||||
use think\Cache;
|
use think\Cache;
|
||||||
use think\Db;
|
use think\Db;
|
||||||
use think\db\Query;
|
use think\db\Query;
|
||||||
|
use think\Exception;
|
||||||
use think\Loader;
|
use think\Loader;
|
||||||
use think\model\Relation;
|
use think\model\Relation;
|
||||||
use think\paginator\Collection as PaginatorCollection;
|
use think\paginator\Collection as PaginatorCollection;
|
||||||
@@ -85,6 +86,8 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
protected $relation;
|
protected $relation;
|
||||||
// 属性类型
|
// 属性类型
|
||||||
protected $fieldType = [];
|
protected $fieldType = [];
|
||||||
|
// 验证失败是否抛出异常
|
||||||
|
protected $failException = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化过的模型.
|
* 初始化过的模型.
|
||||||
@@ -703,6 +706,18 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置验证失败后是否抛出异常
|
||||||
|
* @access public
|
||||||
|
* @param bool $fail 是否抛出异常
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function failException($fail = true)
|
||||||
|
{
|
||||||
|
$this->failException = $fail;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自动验证数据
|
* 自动验证数据
|
||||||
* @access protected
|
* @access protected
|
||||||
@@ -729,7 +744,11 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
}
|
}
|
||||||
if (!$validate->check($data)) {
|
if (!$validate->check($data)) {
|
||||||
$this->error = $validate->getError();
|
$this->error = $validate->getError();
|
||||||
return false;
|
if ($this->failException) {
|
||||||
|
throw new Exception($this->error);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$this->validate = null;
|
$this->validate = null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user