我有3个输入字段,我希望以这种方式进行验证:如果填充了任何字段(共3个字段),则需要全部输入三个字段,如果都不填写,则不需要任何内容,请告诉我laravel 5.6中的解决方案。 / p>
注意:这3个输入字段是数组。如果有人单击添加更多按钮,则该字段将递增。
我尝试了required_with和required_with,但没有任何收获。我看到另一则帖子没有解决我的问题。
我的观点:
<div class="box_general padding_bottom">
<div class="header_box version_2">
<h2><i class="fa fa-clock-o"></i>Special / Holiday Hours</h2>
</div>
<div class="row">
<div class="col-md-12">
<table id="pricing-list-container" style="width:100%;">
<tbody><tr class="pricing-list-item">
<td>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<input type="text" class="form-control" placeholder="Title" name="holidays_title[]" id="holidays_title[]" >
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<input type="time" class="form-control" name="opening_holidays_hours[]" id="opening_holidays_hours[]">
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<input type="time" name="closing_holidays_hours[]" class="form-control" id="closing_holidays_hours[]">
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<a class="delete" href="#"><i class="fa fa-fw fa-remove"></i></a>
</div>
</div>
</div>
</td>
</tr>
</tbody></table>
<a href="#0" class="btn_1 gray add-pricing-list-item"><i class="fa fa-fw fa-plus-circle"></i>Add Item</a>
</div>
</div>
我的控制器
public function createStore(Request $request)
{
$request->validate([
'holidays_title' => 'array|min:1|required_with_all:opening_holidays_hours,closing_holidays_hours',
'opening_holidays_hours' => 'required_with_all:holidays_title,closing_holidays_hours',
'closing_holidays_hours' => 'required_with_all:holidays_title,opening_holidays_hours',
]);
return redirect()->back();
}
预期: 我只想如果3个中的任何一个被填满,那么必须填写另外两个字段。如果没有一个填满,则不需要填写。
实际结果: 但是,如果我填写标题字段并提交表格,则现在在我的视图中没有错误显示
答案 0 :(得分:0)
尝试这样。
如果声明应该是您的解决方案:) 例如...
在您的控制器中
public function createStore(Request $request)
{
$validator = $request->validate([
'holidays_title' => 'required'
]);
if ($request->holidays_title != null) {
return redirect()->back()->withErrors($validator);
}
elseif($request->opening_holidays_hours != null && $request->closing_holidays_hours != null) {
$validator = $request->validate([
'holidays_title' => 'required',
'opening_holidays_hours' => 'required',
'closing_holidays_hours' => 'required'
]);
}
else($request == null){
return redirect()->back();
}
return redirect()->back()->withErrors($validator);
}
,还必须在您的Blade文件中插入flash::message
。https://laravel.com/docs/5.7/validation#manually-creating-validators