Yii2实用基础学习笔记(四):模型验证
来源:互联网 发布:解压缩软件安卓版 编辑:程序博客网 时间:2024/06/06 18:47
转发自:http://www.yiichina.com/tutorial/828
- 模型的load方法
模型对象的load方法为模型加载数据,一般地,模型尝试从$_POST搜集用户提交的数据,由Yii的yii\web\Request::post()方法负责搜集。
另外load加载的字段必须在模型的rules方法里,不然也不能赋值。 - 模型的rules规则
常用验证规则:
1.【safe 不验证规则】//['字段','safe']//[['字段1','字段2',……],'safe']2.【required 不能为空,必须验证】//['字段','required','message' => '提示信息']//[['字段1','字段2',……],'required','message' => '提示信息']3.【compare 对比验证】//['字段','compare','compareValue'=>'对比的值','message' => '提示信息']//['字段','compare','compareAttribute'=>'对比的字段','message' => '提示信息']4.【double 双精度数字验证】//['字段','double','min'=>'最小值','max' => '最大值','tooSmall'=>'小于最小值提示','tooBig'=>'大于最大值提示','message'=>'提示信息']5.【email 邮箱规则验证】//['字段','email','message' => '提示信息']6.【in 范围验证】//['字段','in','range'=>['1','2','3',……],'message' => '提示信息']7.【integer 整型数字验证】//['字段','integer','message' => '提示信息']8.【match 正则验证】//['字段','match','parttern'=>'#正则#','message' => '提示信息']9.【string 字符串验证】//['字段','string','min'=>'最小长度','max' => '最大长度','tooShort'=>'小于最小长度提示','tooLong'=>'大于最大长度提示','message'=>'提示信息']10.【unique 唯一验证】//['字段','unique','message' => '提示信息']11.【captcha 验证码验证】//['字段','captcha','captchaAction',=>'login/captcha','message' => '提示信息']12.自定义验证//['字段','自定义方法']//可通过在自定义方法里调用addError()来定义错误例:['username',function($attribute,$params){ if(满足条件){ $this->addError($attribute,'提示信息'); } },'params'=>['message'=>'dd']]更多类型参考类文档 http://www.yiichina.com/doc/api/2.0/yii-validators-validator
在@app\models下创建一个Test命名的模型文件
<?phpnamespace app\models;use yii\base\Model;class Test extends Model{public $username;public $password;public function rules(){return [//[['username','password'],'required','message'=>'不能为空']['username','required','message' => '用户名不能为空'],['password','required','message' => '密码不能为空']];}}
在Test控制器新建一个actionValidate操作来测试,通过模型的validate()方法在幕后执行验证操作:
public function actionValidate(){//模拟数据,数组的一维必须是相关模型名//手动封盖值用于测试$data = ['Test' => ['username' => 'hello','password' => '123321']];$test = new \app\models\Test();$test->load($data);if($data && $test->validate()){echo 'ok';}else{var_dump($test->errors);}
/*
$test->validate();调用验证器
if ($test->hasErrors()) {
// 验证失败
} else {
// 验证成功
}
*/
}
可以自构建相应数据来测试所有验证
阅读全文
0 0
- Yii2实用基础学习笔记(四):模型验证
- Yii2实用基础学习笔记(二):Html助手和Request组件 [ 2.0 版本 ]
- yii2学习笔记(四)环境配置
- yii2基础(四)
- Yii2学习笔记(六):验证器captcha的使用
- Yii2学习笔记(四):关于params['breadcrumbs'][]
- Yii2 framework学习笔记(四) -- 第一个Widget
- 【转】yii2基础笔记
- 【Yii2】yii2学习之CSRF验证
- yii2学习笔记(九)用户登录基础
- yii2学习笔记——基础使用操作
- yii2学习之CSRF验证
- yii2学习之CSRF验证
- yii2学习笔记
- yii2.0学习笔记
- YII2 学习笔记-- RBAC
- YII2 学习笔记
- YII2 学习笔记 --- Behavior
- 专门提供为处理一些UI相关的问题而创建的工具类
- python相关网站
- vue-父子组件间的相互传值与传址
- leetcode 682. Baseball Game
- 基于累加的PDM算法的原理
- Yii2实用基础学习笔记(四):模型验证
- EntityTransaction
- GIT与码云
- 用C语言开发一个BT下载软件(一) ------ BitTorrent协议 -2
- 单词数目统计
- java 16进制数据格式化处理工具类,16进制byte数组转String
- 极致钛业联手中企动力 “钛”营销破局传统锅具出口
- 人际关系
- 异常处理--java.lang.reflect.MalformedParameterizedTypeException