我有两个字段:
电子邮件
如何设置Validator对象以便必须填写其中一个字段?无关紧要。
$messages = array(
'email.required_without:qq' => Lang::get('messages.mustenteremail'),
'email.email' => Lang::get('messages.emailinvalid'),
'qq.required_without:email' => Lang::get('messages.mustenterqq'),
);
答案 0 :(得分:41)
required_without
应该有用。
这意味着如果不存在其他字段,则该字段是必需的。如果有两个以上的字段且只需要一个,请使用required_without_all:foo,bar,...
$rules = array(
'Email' => 'required_without:QQ',
'QQ' => 'required_without:Email',
);
答案 1 :(得分:11)
在上面的例子中(由lucasgeiter给出)你实际上只需要一个条件而不是两个条件。
$rules = array(
'Email' => 'required_without:QQ'
);
如果您同时拥有这两个规则,则两者都不会填写将导致显示两条错误消息。这样,它将检查是否填写了至少一个字段,并且如果两个字段都未填充,则仅显示一条错误消息。