wuori/laravel-unique-gmail-validation

一个验证规则,用于测试Gmail地址的唯一性,支持./+修饰符。

1.0.0 2021-04-05 01:11 UTC

This package is auto-updated.

Last update: 2024-09-05 09:08:54 UTC


README

Latest Version on Packagist Total Downloads

Gmail 允许添加两个修饰符+.到你的电子邮件地址中,而不会影响投递。例如,michaelwuori@gmail.commichael.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键对应的TestModeluser_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)。有关更多信息,请参阅许可证文件