控制器验证
如果你需要在控制器中进行验证,并且继承了\think\Controller
的话,可以调用控制器类提供的validate
方法进行验证,如下:
$result =
$this->validate( [
'name'
=>
'thinkphp',
'email'
=>
'[email protected]', ], [
'name'
=>
'require|max:25',
'email'
=>
'email', ]);
if(true
!== $result){
// 验证失败 输出错误信息
dump($result); }
如果定义了验证器类的话,例如:
namespace
app\index\validate;
use
think\Validate;
class
User
extends
Validate
{
protected
$rule = [
'name'
=>
'require|max:25',
'email'
=>
'email', ];
protected
$message = [
'name.require'
=>
'用户名必须',
'email'
=>
'邮箱格式错误', ];
protected
$scene = [
'add'
=> ['name','email'],
'edit'
=> ['email'], ]; }
控制器中的验证代码可以简化为:
$result =
$this->validate($data,'User');
if(true
!== $result){
// 验证失败 输出错误信息
dump($result); }
如果要使用场景,可以使用:
$result =
$this->validate($data,'User.edit');
if(true
!== $result){
// 验证失败 输出错误信息
dump($result); }
在validate方法中还支持做一些前置的操作回调,使用方式如下:
$result =
$this->validate($data,'User.edit',[],[$this,'some']);
if(true
!== $result){
// 验证失败 输出错误信息
dump($result); }
文档最后更新时间:2018-04-26 10:47:01
未解决你的问题?请到「问答社区」反馈你遇到的问题