我最初将字段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中执行此操作?我正在查看sometimes
规则 - 但我不确定这是否应该如何完成。
编辑:
我想这几乎可以通过以下方式完成:
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',
]);
}
虽然根据我对sometimes
规则的理解,它只会验证输入数组中是否存在键,因此first_name
可能存在,而last_name
可能是非存在的,仍将作为"传递"验证。这不是我喜欢的行为。
答案 0 :(得分:3)
您可能正在寻找的是required_without:foo,bar,...
该验证规则说'验证字段必须存在且仅当其他任何指定字段不存在时才为空'。
所以你可能有business_name => required_without:first_name,last_name