当用户填写消息(文本区域)时,他/她无法填写日期、时间、地点值。
仅当 Message 为空且所有这三个字段均已填充时,才会考虑这三个字段。
如何使用 Laravel 表单验证来做到这一点?是否可以在Request的规则方法中定义这些逻辑?
我是 Laravel 的新手。
提前致谢
您可以通过使用条件验证规则来实现此目的(服务器端):
- required_if:另一个字段,值,...
- required_unless:另一个字段,值,...
- required_with:foo,bar,...
- required_with_all:foo,bar,...
- required_without:foo,bar,...
- required_without_all:foo,bar,...
对于你的情况我想说:
-
date除非已填写消息,否则为必填项
-
time除非已填写消息,否则为必填项
-
venue除非已填写消息,否则为必填项
-
message需要没有全部日期、时间、地点
如果需要的话,可以用管道将它们分隔开来进行链式规则
下面是一个示例片段。在你的内部使用这个方法示例表单请求延伸Request
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rules = [];
switch ($this->method()) {
case 'PATCH':
case 'PUT':
case 'POST':
$rules = [
'date' => 'required_without:message',
'time' => 'required_without:message',
'venue' => 'required_without:message',
'message' => 'required_without_all:date,time,venue',
];
break;
default:
// Perform no alteration to rules
break;
}
return $rules;
}
查看文档在这里 https://laravel.com/docs/5.2/validation#rule-required-if
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)