2016-11-08 105 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 
      ); 
     }], 
    ]; 
}