Yii2 HTML净化器

时间:2016-12-11 05:33:24

标签: yii2 yii2-validation

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

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

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

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

1 个答案:

答案 0 :(得分:9)

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

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