Larval 5.3仅在填写密码字段时检查电子邮件是否存在

时间:2016-09-05 22:29:07

标签: php laravel laravel-5

我有一个使用标准Validator的Laravel 5.3应用程序。我的表单使用户提供电子邮件地址。他们可以继续作为访客,但如果他们确实想要创建帐户,他们唯一需要提供的是密码,并与该电子邮件地址一起创建用户帐户。

但是,我的问题是我不确定只有填写了密码字段才能使用验证器。

    $this->validate($request, [
        'first_name' => 'required',
        'email' => 'required|confirmed|email',
        'last_name' => 'required',
        'street_1' => 'required',
        'zip_code' => 'required',
        'phone_1' => 'required',
        'password' => 'required_if:account,1|confirmed',
    ]);

我可以检查并返回带有错误消息的重定向但是如果可以,我更愿意通过验证器。

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是将验证规则放入数组中,然后执行所需的检查。因此,如果用户选中了“帐户创建”复选框,请添加规则。

$rules = [
    'first_name' => 'required',
    'last_name' => 'required',
    'street_1' => 'required',
    'zip_code' => 'required',
    'phone_1' => 'required',
    'password' => 'required_if:account,1|confirmed',
]

if ($request->input('acount') == 1) {
    $rules['email'] = 'required|confirmed|email'
}