Я отправил массив из своей формы с помощью javascript, который получает значения из разных полей ввода и затем сохраняет его в одной переменной.
<input type="hidden" name="details" id="details">
JS
document.querySelectorAll('form')[1].addEventListener('submit', function(event) {
var details = [];
for (var i = 0; i < {{ $event->grocery->items()->count() }}; i++) {
details[i] = [
document.querySelectorAll('.store')[i].value,
document.querySelectorAll('.item')[i].value,
document.querySelectorAll('.quantity')[i].value,
document.querySelectorAll('.brand')[i].value,
document.querySelectorAll('.size')[i].value,
];
}
document.querySelector('#details').value = JSON.stringify(details);
});
Затем в моем контроллере я декодирую массив, используя json_decode
$request->details = json_decode($request->details);
Теперь я хочу проверить каждую итерацию (просто чтобы проверить, пуста она или нет). Итак, мне нравится,
$request->validate([
...
'details.*.*' => 'required'
]);
Но моя проблема в том, что это ничего не делает. Даже если я отправил пустую итерацию, она продолжится без возврата ошибки.
Я что-то здесь не так делаю? Пожалуйста, помогите мне.
Обновление
Пример var var dumping details
array:3 [▼
0 => array:5 [▼
0 => "Grocery"
1 => "Grocery"
2 => "Grocery"
3 => "Grocery"
4 => "Grocery"
]
1 => array:5 [▼
0 => "Grocery"
1 => "Grocery"
2 => "Grocery"
3 => "Grocery"
4 => "Grocery"
]
2 => array:5 [▼
0 => "Grocery"
1 => "Grocery"
2 => "Grocery"
3 => "Grocery"
4 => "Grocery"
]
]