Yii2框架数据验证操作实例详解
(验证数组ids中的每个元素是否都是int类型数据) rule:定义验证每一个数组元素的验证规则。 allowMessageFromRule:是否使用rule中指定的多个验证规则报错信息,默认为true,若设置为false,则使用“message”参数值作为错误信息。 注:若输入值不是数组则会报错。 (5)exist:存在性。 'appmodelsCategory','targetAttribute' => 'id'] (cid的值是否在AR类对应的id属性中存在,使用场景:当前AR模型关联的数据表的cid字段和Category模型关联的数据表的id字段相关联,所以使用该验证规则验证cid字段的值能否在关联的另一个数据表中找到对应记录) targetClass:用于查找输入值的目标AR类。 targetAttribute:用于查找输入值的目标属性名称。 filter:检查属性值存在性需要进行数据库查询,该参数设置查询的过滤条件。可以设置为查询条件的字符串或数组,或者function($query)匿名函数。 allowArray:是否允许输入值为数组,默认为false。若设置为true,则数组的每个元素都必须在目标字段中存在。若把targetAttribute设置为多元素数组来验证被测值在多字段中的存在性时,该属性不能设置为true。 (6)unique:唯一性。 'appmodelsUser','message' => '{attribute}"{value}"已被注册!','on' => 'signup'] 除了没有allowArray属性,其他属性都和exist验证器一样。 (7)in:范围。 [0,1,2]] range:范围值列表。 strict:是否使用严格模式(类型与值都要相同)。 not:是否对验证的结果取反,默认为false。 allowArray:是否接受输入数组,默认为false。 5. 文件验证器(1)file:文件。 ['png','jpg','gif'],'maxSize' => 1024*1024] extensions:可接受上传的文件扩展名列表。 mimeTypes:可接受上传的MIME类型列表。 minSize:文件大小下限。 maxSize:文件大小上限。 maxFiles:上传文件个数上限,默认为1。设置为大于1时输入值必须为数组。 checkExtensionByMimeType:是否通过文件的MIME类型来判断文件扩展,默认为true。 (2)image:图片。 'png,ipg','minWidth' => 100,'minHeight' => 100] 该验证器继承自file验证器,并支持额外属性minWidth、maxWidth、minHeight、maxHeight来设置图片的最小、最大宽度和最小、最大高度。 四、其他验证器 1. 条件式验证: function($model) {//只在country属性值为'USA'的时候state属性值才不能为空 return $model->country=='USA'; }]注:若需要支持客户端验证,则要配置'whenClient'属性。 1. 自定义验证器: (1)行内验证器:一种以模型方法或匿名函数的形式定义的验证器。 示例: $attribute != $this->newpassword) { $this->addError($attribute,'确认密码和新密码不一致!'); } }]。(当然这里也可以使用yii核心验证器'compare'来实现) 注:行内验证器不支持客户端验证。 (2)独立验证器: 独立验证器是继承自yiivalidatorsValidator或其子类的类,可以通过重写 独立验证器示例: message = '确认密码和密码不一致!'; } //服务器端验证 public function validateAttribute($model,$attribute) { if($model->conpassword !== $model->password) { $model->addError($attribute,$this->message); } } //客户端验证 public function clientValidateAttribute($model,$attribute,$view) { $conpassword = json_encode($model->conpassword); $message = json_encode($this->message,JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); return <<模型中使用示例:
最后要注意,验证规则申明的先后顺序对验证结果也是有影响的! 更多关于Yii相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》 希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |