antriver/laravel-unique-email-validator

Laravel验证规则,用于检查电子邮件地址是否唯一。

1.0.0 2020-12-31 21:11 UTC

This package is auto-updated.

Last update: 2024-08-29 06:12:48 UTC


README

这提供了一个Laravel验证规则,在防止电子邮件地址重复使用时,比内置的'unique'规则更有效。

一些电子邮件提供商(例如Gmail)允许你在电子邮件地址中使用加号(+)来创建“别名”。例如,如果你的电子邮件地址是somename@gmail.com,你也可以使用

并且它们都有效。正常的'unique'规则会允许这些,因为它们都是不同的。这个规则将它们视为相同的,并将禁止使用相同的somename@gmail.com 账户。

一些电子邮件提供商(例如Gmail)还允许你在电子邮件地址中的@符号之前放置任何位置的点,这些都将有效。例如,如果你的电子邮件地址是somename@gmail.com,你也可以使用

要求

您的MySQL服务器必须支持非贪婪正则表达式操作符。这已经在MySQL 8和MariaDB 10.2上进行了测试,因此这些版本或更新的版本应该可以工作。

安装

composer require antriver/laravel-unique-email-validator

使用

    $this->validate(
        $request,
        [
            // Check for other use of the same email address in the users.email column.
            'email' => [new \Antriver\LaravelUniqueEmailValidator\UniqueEmailRule('users', 'email')],
        ]
    );

与原始的unique规则一样,你可以指定某些行应该被排除。这在更新用户且不应拒绝用户现有的已注册电子邮件地址时非常有用。

    $this->validate(
        $request,
        [
            'email' => [new \Antriver\LaravelUniqueEmailValidator\UniqueEmailRule('users', 'email', ['id' => 123])],
            // Where 123 is the 'id' of the existing user.
        ]
    );