我为输入字段使用以下命名约定。
course_details[0][d_Total_Score]
course_details[1][d_Total_Score]
course_details[2][d_Total_Score]
现在我想使用一些规则来验证这些字段。以下是我尝试的代码。
$validatedData = $request->validate([
'course_details.0.d_Total_Score' => 'required',
'course_details.1.d_Total_Score' => 'required',
'course_details.2.d_Total_Score' => 'required'
]);
我参考了这里的内容。
但是似乎并没有起作用。
HTML代码:
<input placeholder="SAT score " class="form-control form-control-sm valid" id="d_Score_Sub_Category_SAT" name="course_details[0][d_Total_Score]" value="" aria-invalid="false" type="text">
问题已解决:正如d3jn所说,验证应该不会覆盖任何地方。
corse_details
:'course_details.*.d_Total_Score' => 'required'
。更多信息请参见此处。同时,请提供您在哪里使用这些规则的代码 - 在FormRequest
类中?使用Validator
?是否有任何异常?我们需要更多信息。 - d3jndd($request->input('course_details'))
。我假设“这似乎不起作用”意味着即使没有指定d_Total_Score
,您也没有收到任何错误。或者相反,您总是收到验证错误? - d3jn<input name="course_details[0][d_Total_Score]" ...>
,以匹配您提供的验证结构。 - d3jndd($request->input('course_details'))
显示的内容,可能存在其他带有name="course_details[d_Total_Score]"
的输入项,这些输入项位于您原始输入之后,并覆盖了请求中发送的值。 - d3jn