根据 Laravel 文档,我找到了以下解决方案:
在 AppServiceProvider.php 的 boot() 方法中,像这样扩展 Validator:
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
/* validate international number format rule (depending on locale) */
Validator::extend('intl_num', function ($attribute, $value, $parameters, $validator) {
$numberFormatter = new \NumberFormatter(App::getLocale(), \NumberFormatter::DECIMAL);
$num = $numberFormatter->parse($value);
return ($num === false) ? false : true;
});
}
}
现在我们可以使用规则'intl_num' 进行验证,例如在FormRequest 类的rules() 方法中。