控制器验证-j9九游
如果你需要在控制器中进行验证,并且继承了\think\controller
的话,可以调用控制器类提供的validate
方法进行验证,如下:
$result = $this->validate(
[
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com',
],
[
'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
未解决你的问题?请到「问答社区」反馈你遇到的问题