【发布时间】:2018-10-31 08:10:41
【问题描述】:
当我提交表单时,我会这样做以验证我的字段...
<?php
$this->validate($request, [
'name' => __('required|max:255|unique:templates,name,NULL,id,company_id,:company_id', [
'company_id' => $request->input('companies')
]),
'modules' => 'required|numeric',
'companies' => 'required|numeric',
'start_date' => 'required_with:limited_availability|date|before:end_date',
'end_date' => 'required_with:limited_availability|date|after:start_date',
'indesign_location' => __('required|file|mimetypes:application/zip|max::max_upload_size', [
'max_upload_size' => config('file.max_size')
])
]);
我想要达到的目标:
字段 start_date 和 end_date 应该仅在存在 limited_availability 字段时才需要(因此需要验证)。
现在发生的情况:我没有收到该字段是必填字段的消息,但我确实在两个日期字段中收到指定日期无效的错误消息。
limited_availability 是一个复选框,start_date 和 end_date 都是日期输入字段。
我该如何解决这个问题?
【问题讨论】:
-
你能转储
limited_availability的提交值吗?其实不知道required_with验证是怎么工作的,但是如果limited_availability的值总是被提交,它总是会通过验证规则。 -
"现在发生的情况是我没有收到该字段是必填字段的消息,但我确实在两个日期字段中收到指定日期无效的错误消息。"如果存在日期字段,那么它不会中断要求.. 验证所以没有错误吗?如果您尝试不使用一个日期参数并且它是这样说的,那么它基本上不会看到 limited_availability 存在。你确定送他们?检查 $request 变量是否存在。
-
@DharmaSaputra 我 100% 确定帖子中不存在
limited_availability字段。我已经检查过了。也就是说,当我不选中复选框时,当我选中它时,它会出现在请求中。 -
@mutas 当我没有选中复选框时,
limited_availability不会发送(请参阅我上面的评论)。我的目标是使该字段成为必填字段并仅在选中limited_availability时检查日期。 -
我不知道了。但我会用 dd($request->all()); 来检查请求,返回 $request->all(); 或使用调试工具,当我选中复选框而不是。
标签: laravel laravel-5 laravel-validation laravel-5.7