2016-11-08 129 views
1

我想覆盖yii2中数字的核心规则将波斯数字转换为英文数字,​​然后验证它们? 这些代码使用在PHP覆盖yii2中的核心规则

function convert($string) { 
    $persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'); 
    $num = range(0, 9); 
    return str_replace($persian, $num, $string); 
} 

如何申请这些代码做验证之前转换转换波斯号码英语号码?我不想在我的模型使用beforeValidate 我写了一个,但及部件我不知道哪些功能和哪些地方应该改变?

回答

1

在模型中添加filter规则。

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