Laravel 验证必须填写两个字段之一

新手上路,请多包涵

我有两个领域:

QQ

电子邮件

如何设置 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'),
);

原文由 imperium2335 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 698
2 个回答

required_without 应该可以。

这意味着如果其他字段不存在,则该字段是必需的。如果有两个以上的字段并且只需要一个,请使用 required_without_all:foo,bar,...

 $rules = array(
    'Email' => 'required_without:QQ',
    'QQ' => 'required_without:Email',
);

原文由 lukasgeiter 发布,翻译遵循 CC BY-SA 3.0 许可协议

在上面的例子中(由 lucasgeiter 给出)你实际上只需要一个条件而不是两个。

 $rules = array(
    'Email' => 'required_without:QQ'
);

如果您有这两个规则,那么都不填写将导致显示两条错误消息。这样,它将检查是否至少有一个字段已填写,如果两者均未填写,则只会显示一条错误消息。

原文由 omarjebari 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏