php - yii2用户数据验证的问题
PHP中文网
PHP中文网 2017-04-10 16:52:10
0
2
777

在一个model的rules方法中写规则,

public function rules() { return [ [['title','description','keywords'],'strip_tags'] ]; }

这个按理说应该是想trim函数一样,对内容进行过滤,实际上却报错
ReflectionException
Class strip_tags does not exist
为何将trim当成函数,却将strip_tags当成一个类,这是怎么回事?

PHP中文网
PHP中文网

认证0级讲师

reply all (2)
Peter_Zhu

并没有把trim当做函数。

public static $builtInValidators = [ 'boolean' => 'yii\validators\BooleanValidator', 'captcha' => 'yii\captcha\CaptchaValidator', 'compare' => 'yii\validators\CompareValidator', 'date' => 'yii\validators\DateValidator', 'default' => 'yii\validators\DefaultValueValidator', 'double' => 'yii\validators\NumberValidator', 'each' => 'yii\validators\EachValidator', 'email' => 'yii\validators\EmailValidator', 'exist' => 'yii\validators\ExistValidator', 'file' => 'yii\validators\FileValidator', 'filter' => 'yii\validators\FilterValidator', 'image' => 'yii\validators\ImageValidator', 'in' => 'yii\validators\RangeValidator', 'integer' => [ 'class' => 'yii\validators\NumberValidator', 'integerOnly' => true, ], 'match' => 'yii\validators\RegularExpressionValidator', 'number' => 'yii\validators\NumberValidator', 'required' => 'yii\validators\RequiredValidator', 'safe' => 'yii\validators\SafeValidator', 'string' => 'yii\validators\StringValidator', 'trim' => [ 'class' => 'yii\validators\FilterValidator', 'filter' => 'trim', 'skipOnArray' => true, ], 'unique' => 'yii\validators\UniqueValidator', 'url' => 'yii\validators\UrlValidator', 'ip' => 'yii\validators\IpValidator', ];
    刘奇

    父类 yii/base/Model::createValidators,楼主可以具体看下这个方法,生成验证器方法。
    遍历rules,判断$rule[1],也就相当于'trim','strip_tags'这些字段
    1、是否是匿名函数($rule instanceof \Closure)或者是否是子类的方法
    2、判断是否是已经存在的验证器

    public static $builtInValidators = [ 'boolean' => 'yii\validators\BooleanValidator', 'captcha' => 'yii\captcha\CaptchaValidator', 'compare' => 'yii\validators\CompareValidator', 'date' => 'yii\validators\DateValidator', 'default' => 'yii\validators\DefaultValueValidator', 'double' => 'yii\validators\NumberValidator', 'each' => 'yii\validators\EachValidator', 'email' => 'yii\validators\EmailValidator', 'exist' => 'yii\validators\ExistValidator', 'file' => 'yii\validators\FileValidator', 'filter' => 'yii\validators\FilterValidator', 'image' => 'yii\validators\ImageValidator', 'in' => 'yii\validators\RangeValidator', 'integer' => [ 'class' => 'yii\validators\NumberValidator', 'integerOnly' => true, ], 'match' => 'yii\validators\RegularExpressionValidator', 'number' => 'yii\validators\NumberValidator', 'required' => 'yii\validators\RequiredValidator', 'safe' => 'yii\validators\SafeValidator', 'string' => 'yii\validators\StringValidator', 'trim' => [ 'class' => 'yii\validators\FilterValidator', 'filter' => 'trim', 'skipOnArray' => true, ], 'unique' => 'yii\validators\UniqueValidator', 'url' => 'yii\validators\UrlValidator', ];
      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!