看起来是小问题,但我找不到最好的解决方案。 在 Laravel 验证中,我需要检查用户是否输入了公司电子邮件,我正在使用
ends_with
检查。但区分大小写
$request->validate([
'username' => [...],
'email' => ['required', 'string', 'email', 'max:50', 'unique:users', 'ends_with:mycompany.com'],
]);
因此,如果用户输入
mycompany.com
将通过验证,但输入 MYCOMPANY.COM
或 MYCompany.com
时将失败
您可以在表单请求中使用
PrepareForValidation
方法。
首先通过:php artisan make:request
发出表单请求,然后将此方法添加到类中:
protected function prepareForValidation()
{
$this->merge([
'email' => strtolower($this->email),
]);
}
如果您使用
artisan make:request
创建单独的请求,您可以在使用 prepareForValidation
方法进行验证之前格式化数据
您可以在这里阅读更多相关内容 https://laravel.com/docs/9.x/validation#form-request-validation