一直以来都是对着手册写验证器,感觉没有学习到精髓,今天系统的研究了一下,本文记录一下。
场景如下:
对一个Login控制器设计验证器进行验证,步骤如下:
1、新建一个名为Login的验证器,并添加验证规则:
<?php
namespace app\index\validate;
use think\Validate;
class Login extends Validate
{
protected $rule = [
'username' => 'require',
'password' => 'require',
'captcha' => 'require|captcha',
];
protected $message = [
'username.require' => '请输入账号',
'password.require' => '请输入密码',
'captcha.require' => '请输入验证码',
'captcha.captcha' => '验证码错误',
];
}
接着在Login控制器中添加:
if ($this->request->isPost()) {
$param = $this->request->param();
$result = $this->validate($param, 'login');
if ($result !== true) {
$this->error($result);
}
使用validate方法可以简化验证,第二个参数指定的是验证器,不区分大小写
注意:验证器的名字首字母大写,驼峰法会出错
参考资料:https://www.kancloud.cn/manual/thinkphp5_1/354101
Comments