2016-11-08 3 views
1

yii2の番号のコアルールをオーバーライドして、ペルシア語の数字を英語の数字に変換して検証したかったのですか? これらのコードは、私が検証する前に変換することのためにこれらのコードを適用することができますどのようにPHPyii2のコアルールをオーバーライド

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

に英語の数字にペルシャ語の数字を変換するために使用しています?私は私のモデルでbeforeValidateを使用したくない 私は、CompoNetを書いたが、私どのような機能とどこを変えるべきかを知らない?

答えて

1

モデルにfilterルールを追加します。

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