У меня есть следующая проверка в действии контроллера:
foreach ($request['qtys'] as $key => $val){
if (!$this->_validateMinQty($key, $job, $val)){
$customerTitle = $job->customers()->where('customer_id',$key)->first()->title;
return redirect()->back()->withErrors(['qtys' => __('The qty of the customer :customerTitle is less than allowed qty',['customerTitle' => $customerTitle])]);
}
}
Эта проверка ввода нескольких форм с именем qtys
в представлении:
@foreach($job->customers as $customer)
<div class="form-group {{$errors->first('qtys has-error')}}">
{!! Form::label('qtys-'.$customer->id, __('Qty').' '.$customer->title) !!}
<div class="row">
<div class="col-md-9">
{!! Form::text('qtys['.$customer->id.']',$customer->pivot->e_production,['class' =>'form-control qtys', "data-sumequal"=>"qty",'required' => 'required','title' => $customer->pivot->aid,'id' => 'qtys-'.$customer->id]) !!}
<div class="help-block with-errors"></div>
@php ($eleE = $errors->first('qtys'))
@include('layouts.form-ele-error')
</div>
<div class="col-md-3">
<a href="/storage/create/{{$customer->pivot->aid}}" class="btn btn-nile"><i class="fox-add"></i>{{__('Add Storage')}}</a>
</div>
</div>
</div>
@endforeach
Приведенный выше код работает, носо следующим ограничением:
Сообщение об ошибке отображается под каждым входом с именем qtys[x]
, где x - целое число, и только первый вход Testana
имеет недопустимое количество, как на следующем снимке экрана:
В сообщении о возврате действия контроллера я попытался использовать индексированное имя для ввода, как показано ниже:
return redirect()->back()->withErrors(['qtys.10' => ....
Однако это предотвращает рендеринг сообщения об ошибке.под любым qtys
полем.Есть ли решение?