Yii2 HTML净化器

Mil*_*bie 4 yii2 yii2-validation

我对Yii2的验证有疑问.所以,我的模型验证规则是这样的:

return [
    ['status', 'required', 'on' => 'update'],
    [['status'], function ($attribute) {
        $this->$attribute = \yii\helpers\HtmlPurifier::process($this->$attribute);
    }],
];
Run Code Online (Sandbox Code Playgroud)

问题是如果内容是<script>alert('something')</script>,由于净化器将是空白,内容将通过所需的验证.

那么如何重新验证require的内容呢?或者这样做的好方法是什么?

Biz*_*ley 9

验证规则是一个接一个地处理,所以只需将第二个作为第一个.

return [
    ['status', 'filter', 'filter' => function ($value) {
        return \yii\helpers\HtmlPurifier::process($value);
    }],
    ['status', 'required', 'on' => 'update'],
];
Run Code Online (Sandbox Code Playgroud)