我对Yii2的验证有疑问。所以,我的模型验证规则是这样的:
return [
['status', 'required', 'on' => 'update'],
[['status'], function ($attribute) {
$this->$attribute = \yii\helpers\HtmlPurifier::process($this->$attribute);
}],
];
问题是,如果内容为<script>alert('something')</script>
,则由于净化器而内容将为空白,内容将通过所需的验证。
那么如何重新验证require的内容呢?或者这样做的好方法是什么?
答案 0 :(得分:9)
验证规则一个接一个地处理,所以只需将第二个作为第一个。
return [
['status', 'filter', 'filter' => function ($value) {
return \yii\helpers\HtmlPurifier::process($value);
}],
['status', 'required', 'on' => 'update'],
];