4

我有一个关于 Yii2 验证的问题。所以,我的模型验证规则是这样的:

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

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

那么如何重新验证 require 的内容呢?或者有什么好的方法吗?

4

1 回答 1

10

验证规则是一个接一个地处理,所以把第二个放在第一位。

return [
    ['status', 'filter', 'filter' => function ($value) {
        return \yii\helpers\HtmlPurifier::process($value);
    }],
    ['status', 'required', 'on' => 'update'],
];
于 2016-12-11T09:04:59.827 回答