覆盖yii2中的核心规则

覆盖yii2中的核心规则,yii2,yii2-advanced-app,yii2-basic-app,Yii2,Yii2 Advanced App,Yii2 Basic App,我想重写yii2中数字的核心规则,将波斯语数字转换为英语数字,然后验证它们? 这些代码用于在php中将波斯语数字转换为英语数字 function convert($string) { $persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'); $num = range(0, 9); return str_replace($persian, $num, $string); } 如何应用这些代码在验

我想重写yii2中数字的核心规则,将波斯语数字转换为英语数字,然后验证它们? 这些代码用于在php中将波斯语数字转换为英语数字

function convert($string) {
    $persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
    $num = range(0, 9);
    return str_replace($persian, $num, $string);
}
如何应用这些代码在验证前进行转换?我不想在模型中使用beforeValidate
我写了一个componet,但我不知道应该更改什么函数和位置?

在模型中添加
filter
规则

public function rules()
{
    return [
        ['pers_number', 'filter', 'filter' => function ($value) {
            return str_replace(
                ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'], 
                range(0, 9),
                $value
            );
        }],
    ];
}