thinkphp5.0版本自定义验证器正确的也报错?
题目描述
开始学习tp框架,照着
https://www.kancloud.cn/yunzh...
这里的代码去模仿着写,没有完全照抄。参考了5.0的完全手册,创建了app\common\validate\Teacher.php
验证类:
namespace app\common\validate;
use think\Validate;
class Teacher extends Validate
{
protected $rule = [
'name' => 'required',
'username' => 'required',
'email' => 'email',
];
protected $message = [
'name' => '姓名必须写aaaaa',
'username' => '用户名必须写bbbbb',
'email' => '邮箱格式不对ccccc',
];
}
然后在控制器app\index\controller\TeacherController.php
里面添加了插入数据的方法:
public function insert()
{
//接收表单提交的数据
$formData = Request::instance()->param();
// var_dump($formData);
// return;
// 实例化模型
$Teacher = new Teacher;
$Teacher->name = $formData['name'];
$Teacher->username = $formData['username'];
$Teacher->sex = $formData['sex'];
$Teacher->email = $formData['email'];
$Teacher->create_time = $formData['create_time'];
// var_dump($Teacher);
// return;
// 验证一下数据
// 加载验证器
$validate = Loader::validate('common/Teacher');
if (!$validate->check($Teacher)) {
return '新增失败:' . $validate->getError();
} else {
$Teacher->save($formData);
return $this->success('添加成功!', url('index'));
}
}
然后在添加界面:
点击添加之后,报错:
新增失败:姓名必须写aaaaa
这里有两个疑问:
- 查看了资料
Loader::validate
后面大部分都跟随的是和控制器在同一个模块下的验证器类,我这里用的是common
模块的,所以尝试几次之后:Loader::validate('common/validate/Teacher')
和
Loader::validate('common/Teacher')
发现后面的不报这个错误:类不存在:app\common\validate\validate\Teacher
。所以感觉验证器类的引入没问题了。
但是,为什么最后结果还是验证不通过呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
https://www.kancloud.cn/manua...