Sử dụng nhiều đầu vào có cùng tên như thế này
<input name="TitleText[]" />
<select name="ReadingText[]" >
...
<select name="langWrittingText[]">
...
<select name="SpeakingText[]">
...
Bằng cách này, dữ liệu sẽ được đăng dưới dạng một mảng, giả sử rằng tất cả các đầu vào / lựa chọn được người dùng yêu cầu điền vào
Trong bộ điều khiển của mình, bạn có thể thực hiện một số việc như thế này
$count = count($input['TitleText']); // here we will know how many entries have been posted
$languages = array();
for($i=0; $i<$count; $i++){
if(!empty($input['TitleText'][$i])){
array_push($languages, array( // iterate through each entry and create an array of inputs
'title' => $input['TitleText'][$i],
'reading' => $input['ReadingText'][$i],
'writting' => $input['WrittingText'][$i],
'speaking' => $input['SpeakingText'][$i]
));
}
}
Languages::insert($languages); // save the array of models at once
Hy vọng điều này sẽ hữu ích.