我最初在注册表单中具有first_name,last_name,password,email作为字段.我需要添加一个注册为企业的选项.
我最初的验证规则:
protected function validator(array $data)
{
return Validator::make($data, [
'first_name' => 'required|max:255',
'last_name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
]);
}
我需要添加一个business_name字段.我需要验证为:
first_name和last_name是必需的,xor business_name是必需的.
我如何在Laravel 5.2中做到这一点?我正在查看有时的规则-但是我不确定是否应该这样做.
编辑:
我想几乎可以通过以下方式完成:
protected function validator(array $data)
{
return Validator::make($data, [
'first_name' => 'sometimes|max:255',
'last_name' => 'sometimes|max:255',
'business_name'=>'sometimes|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
]);
}
虽然从我对有时规则的理解来看,它只会验证键是否存在于输入数组中,因此first_name可能存在,而last_name可能不存在,仍会验证为“ pass”.这不是我想要的行为.
解决方法:
您可能正在寻找的是required_without:foo,bar,…
该验证规则说:“仅当不存在任何其他指定字段时,验证字段才必须存在且不为空”.
因此,您可能会有business_name => required_without:名字,姓氏