count($jawaban['jawaban'])
У вас уже есть массив с именем jabawan, который вы получили с помощью $jawaban = $request->jawaban;
У jabawan будет нормальный счетный массив $jabawan = ['A', 'B']
У него не будет индекса jabawan.
Если бы вы сделали что-то вроде
$jabawan = post();
Вы можете использовать свой код, но вы можете просто использовать
for($i=0; $i<count($jawaban); $i++){
$data[] = array('jawaban' => $jawaban[$i]);
}
Изменить Soal::where('cluster_id', $id)->update($data);
в
if ($soal_model = Soal::find( $id )) {
$soal_model->update($data);
}
Проблема в том, что вы никогда не вызываете get()
для объекта запроса или first()
для коллекции, которую возвращает get()
.
Используя find()
Вы получаете объект обратно или ноль, если он не существует.
Оборачивая это в оператор if, обновление будет выполняться только для существующего объекта, что предотвращает ошибки при попытке обновить нулевое значение.
Кроме того, вы не можете вернуть dd()
.
dd означает «брось и умри», я думаю, по крайней мере, это то, что я прочитал в него, потому что это то, что он делает.
Он сбрасывает данные и затем убивает процесс. Таким образом, все обработчики возврата laravel не будут вызываться после вашего dd()
вызова. Вы убили процесс.