我想覆盖yii2中数字的核心规则,将波斯数转换为英文数字,然后验证它们? 这些代码用于在PHP中将波斯数转换为英文数字
function convert($string) {
$persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
$num = range(0, 9);
return str_replace($persian, $num, $string);
}
如何在验证之前应用这些代码进行转换?我不想在我的模型中使用beforeValidate 我写了一个组件,但我不知道应该改变什么功能和位置?
答案 0 :(得分:1)
在模型中添加filter
规则。
public function rules()
{
return [
['pers_number', 'filter', 'filter' => function ($value) {
return str_replace(
['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'],
range(0, 9),
$value
);
}],
];
}