thinkphp5系列之模型验证
thinkphp5系列之模型验证
数据验证,是保证数据安全的有效方式,在thinkphp5中有着非常方便的模型验证数据,处理方式跟tp3有些不一样的地方,这里超人给出详细的解释和说明,以提供大家在说些的时候少走弯路...
thinkphp5模型验证手册地址:https://www.kancloud.cn/manual/thinkphp5/129355
模型验证我们可以有两种方式
使用验证器进行验证(tp5推荐使用的验证方式)
模型中直接验证
这里以栏目作为说明
以下截图是创建category控制器和模型
和模板页面
验证器验证
thinkphp5验证器手册地址:https://www.kancloud.cn/manual/thinkphp5/129352
首先需要在application/admin下创建validate目录
该目录中创建Category.php
控制器代码:
模型代码:
这里需要注意:
默认情况下验证器需要跟验证器名称一致
也就是模型为:Category.php,那么验证器名称:Category.php
验证器代码:
验证器中$rule来定义验证规则
一个字段如如需多个规则验证使用管道符分割
thinkphp5内置规则:https://www.kancloud.cn/manual/thinkphp5/129356
提示消息【$message】可以不定义,这时候会有默认提示消息
$message可自定义提示信息内容
如果需要调用的验证器类【Cate.php】和当前的模型名称不一致;
建议模型与对应的验证器名一致;
那么模型代码可以这样:
验证时候同样也可以支持场景验证;
这时候验证器需要增加$scene在验证器中:
此时模型验证时
可以这样使用
这样就可以在添加验证cname和description
而在编辑时候可以调用Category.edit只验证description
直接在模型中验证
这个时候不需要验证器了;
不需要创建validate/Category.php了
而将代码直接写在模型中即可
这里跟验证器其实一样的
$this->validate()中
参数1定义验证规则
参数2定义提示信息
个人建议使用验证器进行验证
结构比较清晰
简化模型代码
有必要情况下可以使用场景验证更为方便
【本文来自 武斌博客 http://www.wubin.pro,为超人原创文章,想获取更好的页面浏览效果或者有任何问题请进入博客,同时也可在博主评论区进行留言,让博主为大家答疑解惑~加技术交流群:190338003,欢迎讨论~】