当用户填写留言(textarea)时,他/她无法填写日期,时间,地点值。
只有当Message为空且所有这三个字段都被填充时,这三个字段才会考虑
如何使用Laravel表单验证执行此操作?是否可以在Request的规则方法中定义这些逻辑?
我是Laravel的新人
提前致谢
答案 0 :(得分:4)
您可以使用条件验证规则来实现此目的(服务器端):
我会说你的情况:
链条规则,如果您需要用管道分隔它们
按照示例代码段进行操作。在 ExampleFormRequest 扩展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;
}
答案 1 :(得分:2)
正如您所说的验证规则,例如'消息'这三个领域或所有这些领域('日期','时间'场地')必须填补。因此规则应如下所示。
$rules = [
'date' => 'required_with_all:time,venue|required_without:message',
'time' => 'required_with_all:date,venue|required_without:message',
'venue' => 'required_with_all:date,time |required_without:message',
'message' => 'required_without_all:date,time,venue',
];