最近在开发一个面向巴西市场的电商平台时,我遇到了一个非常具体的痛点:用户注册、地址填写以及订单信息中,包含了大量巴西特有的数据格式,例如CPF(个人税务号)、CNPJ(企业税务号)、带DDD的手机号码、邮政编码(CEP)以及车牌号等。
laravel作为我最喜欢的php框架,其强大的验证系统确实能解决大部分问题。然而,对于这些巴西本地化的特殊格式,laravel内置的
numeric
min
max
这不仅让我的验证代码变得冗长且难以阅读,更重要的是,这些手写的规则极易出错。一个细微的正则错误就可能导致用户数据无法正确录入,或者在数据库中存储了不符合规范的数据,从而影响后续的业务逻辑。每次遇到这种需求,我都感觉开发效率直线下降,并且对未来的维护感到担忧。我迫切需要一个既能简化开发,又能保证数据准确性的“银弹”。
Composer在线学习地址:学习地址
就在我一筹莫展之际,我通过Composer的强大生态系统,发现了
laravellegends/pt-br-validator
laravellegends/pt-br-validator
laravellegends/pt-br-validator
使用这个库来解决我的巴西数据验证难题,过程非常简单和直观。
第一步:安装
通过Composer,你可以轻松地将它添加到你的Laravel项目中。只需在项目根目录运行以下命令:
<pre class="brush:php;toolbar:false;">composer require laravellegends/pt-br-validator
对于Laravel 5.2及以上版本,得益于Laravel的包自动发现机制,你通常不需要手动注册
Service Provider
config/app.php
<pre class="brush:php;toolbar:false;">'providers' => [
// ... 其他包
LaravelLegends\PtBrValidator\ValidatorProvider::class
]第二步:应用验证规则
安装完成后,你就可以像使用Laravel内置规则一样,在你的表单请求(Form Request)或者控制器中应用这些新的巴西验证规则了。
例如,如果你需要验证一个CPF字段和一个带DDD的手机号码:
<pre class="brush:php;toolbar:false;">use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class UserController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'cpf' => 'required|cpf', // 验证CPF是否有效
'celular' => 'required|celular_com_ddd', // 验证带DDD的手机号码
'cep' => 'required|formato_cep', // 验证CEP格式
'cnpj' => 'nullable|cnpj', // 验证CNPJ,允许为空
'placa_veiculo' => 'nullable|formato_placa_de_veiculo', // 验证车牌格式
]);
if ($validator->fails()) {
return redirect('register')
->withErrors($validator)
->withInput();
}
// 数据有效,继续处理
// ...
}
}或者,如果你更喜欢使用Form Request:
<pre class="brush:php;toolbar:false;">// app/Http/Requests/RegisterUserRequest.php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class RegisterUserRequest extends FormRequest
{
public function rules()
{
return [
'cpf' => ['required', 'cpf'],
'celular' => ['required', 'celular_com_ddd'],
// 更多巴西特有规则...
];
}
// 你也可以在这里自定义验证失败时的消息
public function messages()
{
return [
'cpf.cpf' => '请输入有效的CPF号码。',
'celular.celular_com_ddd' => '手机号码格式不正确,请包含DDD。',
];
}
}第三步:自定义验证消息(可选)
laravellegends/pt-br-validator
<pre class="brush:php;toolbar:false;">Validator::make($data, $rules, [
'cpf.cpf' => '抱歉,您输入的CPF无效。',
'celular_com_ddd' => '手机号码格式应为 (XX)9XXXX-XXXX 或 (XX)9XXX-XXXX。'
]);引入
laravellegends/pt-br-validator
总而言之,如果你正在开发面向巴西用户的Laravel应用,并且需要处理各种巴西特有的数据格式验证,那么
laravellegends/pt-br-validator
以上就是如何解决Laravel巴西数据验证难题,使用laravellegends/pt-br-validator让你的表单更智能的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号