Я пытаюсь сохранить все данные, но мне нужно массив, и происходит ошибка формата данных.
лопасть
@foreach($infractions as $infraction)
<tr>
<th>{{ $infraction->title }}</th>
<td>
<input type="checkbox" name="infraction_id[]" value="{{ $infraction->id }}" data-toggle="toggle" data-on="Yes" data-off="No" data-onstyle="success" data-offstyle="danger" data-score="{{ $infraction->score }}">
</td>
</tr>
@endforeach
контроллер
public function store(Request $request)
{
$inspection = new Inspection();
$inspection->infraction_id = $request->infraction_id;
$inspection->encouragement_id = 1;
$inspection->user_id = auth()->user()->id;
$inspection->requisition_id = $request->input('requisition_id');
$inspection->save();
$inspection->requisitions()->update(['status' => 1]);
return redirect()->route('inspection-results.index');
}
Я вижу эту ошибку
SQLSTATE [22007]: неверный формат даты и времени: 1366 неверное целое число
значение: ‘[«1», «3», «66», «68»]’ для столбца ‘infraction_id’ в строке 1 (SQL:
вставить вinspections
(infraction_id
,encouragement_id
,
user_id
,requisition_id
,updated_at
,created_at
) ценности
([«1», «3», «66», «68»], 1, 1, 1, 2018-11-08 10:40:45, 2018-11-08
10:40:45))
Как вы получаете n массив значений для infraction_id
(когда вы определяете это в своем HTML, вы используете name="infraction_id[]"
) Вам нужно будет добавить несколько записей …
foreach ( $request->infraction_id as $infraction_id ) {
$inspection = new Inspection();
$inspection->infraction_id = (int)$infraction_id;
$inspection->encouragement_id = 1;
$inspection->user_id = auth()->user()->id;
$inspection->requisition_id = $request->input('requisition_id');
$inspection->save();
$inspection->requisitions()->update(['status' => 1]);
}
return redirect()->route('inspection-results.index');
Других решений пока нет …