wuori / laravel-unique-gmail-validation
一个验证规则,用于测试Gmail地址的唯一性,支持./+修饰符。
Requires
- php: ^7.3|^8.0
- illuminate/support: ^6.0|^7.0|^8.0
Requires (Dev)
- laravel/legacy-factories: ^1.0.4
- myclabs/php-enum: ^1.6
- orchestra/testbench: ^4.5|^5.0|^6.0
- phpunit/phpunit: ^9.3
README
Gmail 允许添加两个修饰符+和.到你的电子邮件地址中,而不会影响投递。例如,michaelwuori@gmail.com和michael.wuori@gmail.com都是同一个Gmail账户的有效地址。
点(.)修饰符可以放在你的账户名称中的任何位置,如上面的示例所示。
加号(+)修饰符可以附加到你的账户名称后面。例如:michael.wuori+junk@gmail.com。
此验证规则会移除任何点修饰符以及任何+foo附加部分,然后将地址与目标模型中存在的任何@gmail.com电子邮件地址进行比较。
安装
您可以通过composer安装此包
composer require wuori/laravel-unique-gmail-validation
包将自动注册自身。
使用UniqueGmail规则
包含规则
... use Illuminate\Http\Request; use Wuori\UniqueGmail\UniqueGmail; ...
将规则附加到电子邮件字段,将您希望验证的模型作为第一个参数传递。
如果没有传递模型,则规则将默认为\App\Models\User。
// default User model $validator = $request->validate([ 'email' => [new UniqueGmail()] ]); // custom model $validator = $request->validate([ 'email' => [new UniqueGmail(\App\Models\Customers::class)] ]); // combined with other rules $validator = $request->validate([ 'email' => ['required','email','unique:users,email,NULL,id', new UniqueGmail(\App\Models\User::class)] ]);
如果登录用户的id与请求中model_id键对应的TestModel的user_id匹配,则此验证规则将通过。
自定义错误消息
默认情况下,UniqueGmail规则将使用Laravel内置的unique验证消息(trans('validation.unique'))。
您可以通过将消息作为第二个参数$options的条目提供自己的消息。
$options = [ 'message' => 'An account already exists for :existing_email, a varient of :requested_email.' ]; $validator = $request->validate([ 'email' => [new UniqueGmail(\App\Models\User::class, $options)] ]);
自定义消息接受两个可选属性进行替换
:existing_email将替换为匹配的(现有)电子邮件地址。
:requested_email将替换为请求中提供的电子邮件地址。
测试
即将推出...
composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
安全
如果您发现任何安全问题,请通过michael.wuori@gmail.com发送电子邮件,而不是使用问题跟踪器。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。