thinkphp5系列之模型验证

thinkphp5系列之模型验证

thinkphp5系列之模型验证

thinkphp5系列之模型验证

数据验证,是保证数据安全的有效方式,在thinkphp5中有着非常方便的模型验证数据,处理方式跟tp3有些不一样的地方,这里超人给出详细的解释和说明,以提供大家在说些的时候少走弯路...

thinkphp5模型验证手册地址:https://www.kancloud.cn/manual/thinkphp5/129355

模型验证我们可以有两种方式

使用验证器进行验证(tp5推荐使用的验证方式)

模型中直接验证

这里以栏目作为说明

以下截图是创建category控制器和模型

和模板页面

thinkphp5系列之模型验证

thinkphp5系列之模型验证

验证器验证

thinkphp5验证器手册地址:https://www.kancloud.cn/manual/thinkphp5/129352

首先需要在application/admin下创建validate目录

该目录中创建Category.php

thinkphp5系列之模型验证

控制器代码:

thinkphp5系列之模型验证

模型代码:

thinkphp5系列之模型验证

这里需要注意:

默认情况下验证器需要跟验证器名称一致

也就是模型为:Category.php,那么验证器名称:Category.php

验证器代码:

thinkphp5系列之模型验证

验证器中$rule来定义验证规则

一个字段如如需多个规则验证使用管道符分割

thinkphp5内置规则:https://www.kancloud.cn/manual/thinkphp5/129356

提示消息【$message】可以不定义,这时候会有默认提示消息

thinkphp5系列之模型验证

thinkphp5系列之模型验证

$message可自定义提示信息内容

如果需要调用的验证器类【Cate.php】和当前的模型名称不一致;

建议模型与对应的验证器名一致;

那么模型代码可以这样:

thinkphp5系列之模型验证

验证时候同样也可以支持场景验证;

这时候验证器需要增加$scene在验证器中:

thinkphp5系列之模型验证

此时模型验证时

可以这样使用

thinkphp5系列之模型验证

这样就可以在添加验证cname和description

而在编辑时候可以调用Category.edit只验证description

直接在模型中验证

这个时候不需要验证器了;

不需要创建validate/Category.php了

而将代码直接写在模型中即可

thinkphp5系列之模型验证

thinkphp5系列之模型验证

这里跟验证器其实一样的

$this->validate()中

参数1定义验证规则

参数2定义提示信息

个人建议使用验证器进行验证

结构比较清晰

简化模型代码

有必要情况下可以使用场景验证更为方便

【本文来自 武斌博客 http://www.wubin.pro,为超人原创文章,想获取更好的页面浏览效果或者有任何问题请进入博客,同时也可在博主评论区进行留言,让博主为大家答疑解惑~加技术交流群:190338003,欢迎讨论~】

相关推荐