繁体   English   中英

如何修改此Laravel验证规则以检查表中是否存在具有此值的记录?

[英]How can I modify this Laravel validation rule to check if in a table exist a record having this value in a column?

我是PHP新手 ,而且在Laravel 我正在开发一个Laravel 5.4项目,我遇到了与验证相关的以下问题。

在过去,我创建了此验证规则(与新用户注册表单相关):

$rules = array(
    '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',
);

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

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

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

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

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

特别是我有另一个规则数组(定义为扩展FormRequest的类:

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

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

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

Laravel 5.4已经有一个内置的验证规则,称为exists https://laravel.com/docs/5.4/validation#rule-exists

我想你正在寻找:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM