【问题标题】:How can I validate to check if a record having this value exists in a table?如何验证以检查表中是否存在具有此值的记录?
【发布时间】:2017-08-12 05:00:17
【问题描述】:

我正在做一个 Laravel 项目,我遇到了以下与验证相关的问题。

过去我创建了这个验证规则(与新用户注册表相关):

$rules = [
    'name' => 'required',
    'surname' => 'required',
    'login' => 'required|unique:pm_user,login',
    'email' => 'required|email|confirmed|unique:pm_user,email',
    'pass' => 'required|required|min:6',
    'g-recaptcha-response' => 'required|captcha',
];

特别是这个规则数组包含这个规则:

'login' => 'required|unique:pm_user,login',

在我看来,最后一条规则检查插入的登录是否不存在于 pm_user 表中(因此它确保不存在 pm_user 的一行> 表在 login 列中插入了相同的值)。

是吗?如果我做错了断言,请纠正我。

如果它现在以这种方式工作,我的问题是如何在另一组验证规则中做相反的事情。

特别是我有这个其他规则数组(定义到扩展FormRequest的类中:

public function rules() {
    return [
        'email' => 'required|email',
        'token' => 'required',
    ];
}

特别是我必须确保 pm_user 表中还存在一个记录,该记录具有与 email 相同的名为 email 的列的值 请求的字段。

如何更改此请求以执行此验证规则?

【问题讨论】:

    标签: php laravel laravel-validation


    【解决方案1】:

    Laravel 5.4 已经为此内置了一个名为 exists 的验证规则。 https://laravel.com/docs/5.4/validation#rule-exists

    我想你正在寻找:

    'email' => 'required|email|exists:pm_user,email'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-15
      • 2011-12-08
      相关资源
      最近更新 更多