Yii核心验证器api详解

2019-05-02 12:13:23丽君

maxSize: 上传文件的最大字节数 未设不做判断.
maxFiles: 最大的上传文件数 默认为 1, 意味着只能上传单个文件对于单个文件上传框. 如果大于 1, 那么 input必须是一个 array 包含至多 maxFiles 数量的上传文件.
checkExtensionByMimeType: 是否检查文件的扩展名. 如果由MIME类型检查所产生的扩展不同于上传的文件扩展名,该文件将被认为是无效的。默认值为true,意思进行这样的检查。
FileValidator 和 yiiwebUploadedFile 一起使用. .

文件上传请参考:http://www.yiiframework.com/doc-2.0/guide-input-file-upload.html

10. filter 过滤

<?php
[
  // 去掉 "username" 和 "email" 输入空格 跳过数组验证
  [['username', 'email'], 'filter', 'filter' => 'trim', 'skipOnArray' => true],
  // 验证正常 "phone" 输入
  ['phone', 'filter', 'filter' => function ($value) {
    // 验证正确性手机代码
    return $value;
  }],
]
?>

这个验证器验证不了数据. 相反的, it applies a filter on the input value and assigns it back to the attribute being validated.

filter: 一个php回调函数定义一个filter. 他可能是一个全局函数的名字, 一个匿名函数等等. 函数的原型一定是<?php function ($value) { return $newValue; }  ?>这个属性必须设置.

skipOnArray: 当输入只是一个数组的时候是否跳过.默认是 false. 请注意,如果过滤器无法处理数组输入,您应该将此属性设置为true。否则,可能会发生一些PHP错误.

小提示: 去空格直接用trim验证.

小提示: 部分封装可以直接使用系统函数如intval:

<?php
['property', 'filter', 'filter' => 'boolval'],
['property', 'filter', 'filter' => 'intval'],
?>

11. image 图片

<?php
[
  // 检查 "primaryImage" 是否是一个有效的图片 且大小合适
  ['primaryImage', 'image', 'extensions' => 'png, jpg',
    'minWidth' => 100, 'maxWidth' => 1000,
    'minHeight' => 100, 'maxHeight' => 1000,
  ],
]
?>

文件验证器的扩展:

minWidth: 最小的宽度 不设无限制.
maxWidth: 最大的宽度 不设无限制.
minHeight: 最小的高度 不设无限制.
maxHeight: 最大的高度 不设无限制.

12. in 在那一个数组里面的值

<?php
[
  // 检查 "level" 是 1, 2 或 3
  ['level', 'in', 'range' => [1, 2, 3]],
]
?>

检查输入的值是否存在于给定的系列值的列表中.

range: 给定范围值的列表.
strict: 输入值和给定值之间的比较结果是否应严格(的类型和值必须相同)。默认为false。
not: 验证结果是否应该被反转。默认为false。当此属性设置为true,验证检查,输入的值不能是给定列表的值中.
allowArray: 是否允许输入值是一个数组。如果这是真的,并输入值是一个数组,数组中的每个元素必须值的给定列表中找到,或验证会失败。

相关文章 大家在看