Laravel Array验证不起作用

时间:2018-07-19 13:39:07

标签: php laravel laravel-5.5

对于输入字段,我具有以下命名约定。

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'
]);

我已引用here

但这似乎不起作用。

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所述,验证不应覆盖任何地方。

1 个答案:

答案 0 :(得分:2)

您应该能够实现所需的目标:

course_details.*.d_Total_Score' => 'required'

我最近写了类似的文章,我这样做是这样的:

'contacts.*.name' => 'nullable|string|max:255',
'contacts.*.email' => 'nullable|email|max:255',
'contacts.*.phone' => 'nullable|phone:US|max:255',

我的HTML看起来像这样:

<input class="form-control{{ $errors->has('contacts') ? ' is-invalid' : '' }}" id="contacts" name="contacts[0][name]" type="text" value="">
<input class="form-control{{ $errors->has('contacts') ? ' is-invalid' : '' }}" id="contacts" name="contacts[0][email]" type="text" value="">
<input class="form-control{{ $errors->has('contacts') ? ' is-invalid' : '' }}" id="contacts" name="contacts[0][phone]" type="text" value="">

<input class="form-control{{ $errors->has('contacts') ? ' is-invalid' : '' }}" id="contacts" name="contacts[1][name]" type="text" value="">
<input class="form-control{{ $errors->has('contacts') ? ' is-invalid' : '' }}" id="contacts" name="contacts[1][email]" type="text" value="">
<input class="form-control{{ $errors->has('contacts') ? ' is-invalid' : '' }}" id="contacts" name="contacts[2][name]" type="text" value="">

...等等