Laravel 5.5 验证者

Laravel 5.5 validator

laravel 中是否有关于如何选择存储在数据库中的电子邮件的方法?

例如,如果我想要一个独特的电子邮件,您可以像这样使用 "unique:users":

$validator = Validator::make($request->all(), [
        'email' => 'required|unique:users',
        'password' => 'required'
        ]);

但我想知道的是它是否可以检查给定的电子邮件是否存储在数据库中。是否可以使用验证器执行此操作?

如果您想确定它不存在于数据库中,请使用 unique 规则:

unique:table

如果要确保记录存在于数据库中,请使用 exists 规则:

exists:table

您可以使用 exists (https://laravel.com/docs/5.5/validation#rule-exists) 关键字作为 :

$validator = Validator::make($request->all(), [
    'email' => 'required|unique:users|exists:users',
    'password' => 'required'
]);

或者你可以这样做:

$validator = Validator::make($request->all(), [
    'email' => 'required|unique:users',
    'password' => 'required'
]);

if ($validator->fails()) {
    echo 'That email address is already registered';
}