【问题标题】:Laravel 5.5 validatorLaravel 5.5 验证器
【发布时间】:2018-02-18 20:34:09
【问题描述】:

在 laravel 中有没有办法让我选择存储在数据库中的电子邮件?

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

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

但我想知道它是否可以检查给定的电子邮件是否存储在数据库中。验证器可以做到这一点吗?

【问题讨论】:

  • 这正是唯一验证器所做的,如果电子邮件已经存在,它将失败。

标签: php laravel laravel-5.5


【解决方案1】:

您可以使用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';
}

【讨论】:

    【解决方案2】:

    如果您想确定它在 DB 中不存在,请使用unique 规则:

    unique:table
    

    如果您想确保记录存在于 DB 中,请使用 exists 规则:

    exists:table
    

    【讨论】:

      猜你喜欢
      • 2018-12-17
      • 2018-09-15
      • 2018-05-25
      • 2018-05-05
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 2018-11-05
      • 2018-06-03
      相关资源
      最近更新 更多