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

検証ルールは次々に処理されるため、2 番目のルールを最初に配置します。

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