为什么Laravel的phone:NG,mobile验证规则在第二个项目中报错无法使用
问题原因说明
phone 验证规则并非Laravel框架原生提供的能力,而是第三方扩展包封装的自定义验证规则。
- 第一段代码可正常运行,是因为第一个项目已经安装了提供
phone验证能力的扩展包(常用的为propaganistas/laravel-phone),且完成了对应的基础配置,Laravel的验证器可以正常识别并调用该规则对应的处理方法。 - 第二段代码抛出
BadMethodCallException错误,是因为第二个项目未安装对应的手机号验证扩展包,或是安装后没有完成必要的服务注册配置,导致Laravel验证器找不到phone规则对应的实现方法。
解决方案
要在第二个项目中正常使用phone验证规则,执行以下操作即可:
- 在项目根目录运行Composer命令安装扩展包:
composer require propaganistas/laravel-phone
- 若使用的Laravel版本低于5.5,需手动打开
config/app.php文件,在providers数组中追加服务提供者注册代码:
Propaganistas\LaravelPhone\PhoneServiceProvider::class,
配置完成后重新验证业务逻辑,phone:NG,mobile规则即可正常生效。
内容的提问来源于stack exchange,提问作者Adefowowe
相关产品推荐
相关产品推荐

