Laravel 验证在ends_with 中区分大小写

问题描述 投票:0回答:2

看起来是小问题,但我找不到最好的解决方案。 在 Laravel 验证中,我需要检查用户是否输入了公司电子邮件,我正在使用

ends_with
检查。但区分大小写

$request->validate([
    'username' => [...],
    'email' => ['required', 'string', 'email', 'max:50', 'unique:users', 'ends_with:mycompany.com'],     
      ]);

因此,如果用户输入

mycompany.com
将通过验证,但输入
MYCOMPANY.COM
MYCompany.com

时将失败
php laravel eloquent
2个回答
5
投票

您可以在表单请求中使用

PrepareForValidation
方法。 首先通过:
php artisan make:request
发出表单请求,然后将此方法添加到类中:

protected function prepareForValidation()
  {
     $this->merge([
            'email' => strtolower($this->email),
        ]);
  }

1
投票

如果您使用

artisan make:request
创建单独的请求,您可以在使用
prepareForValidation
方法进行验证之前格式化数据

您可以在这里阅读更多相关内容 https://laravel.com/docs/9.x/validation#form-request-validation

© www.soinside.com 2019 - 2024. All rights reserved.