我有一个使用标准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',
]);
我可以检查并返回带有错误消息的重定向但是如果可以,我更愿意通过验证器。
答案 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'
}