Вы выполняете for loop
проверку длины inputCurrName
, поэтому она проходит по каждой inputCurrName
, поэтому вы получаете 3 записи на FamilyName
.В этом случае вам будет нужна только 1 запись на FamilyName
.
. Существует несколько способов вставить значения array
из inputCurrName
в 1 запись с помощью FamilyName
.
Вы можете использовать serialize () для создания хранимого представления значения и unserialize () для декодирования его при извлечении из базы данных.
-OR-
Вы можете использовать implode () для создания списка с разделителями-запятыми при вставке записи.И после извлечения из базы данных используйте explode () , чтобы перебрать каждое из значений, разделенных запятыми.
-OR-
Если вы предпочитаете json, вы можете сделатьто же самое с json_encode () и json_decode () так же, как serialize () и unserialize ()
+------------+---------------------------------------------------------+
| FamilyName | CurrName |
+------------+---------------------------------------------------------+
| Ali | a:3:{i:0;s:5:"Laura";i:1;s:6:"Peter ";i:2;s:4:"Jack";} |
| Ali | Laura,Peter,Jack |
+------------+---------------------------------------------------------+
Использование следующего кода даст вам примердля таблицы выше.curr_name_optional
является частью $user_data
array
для демонстрации взрыва ().
<code><?php
if(isset($_POST) && count($_POST) > 0) {
$inputFamilyName = $_POST['family'];
$inputCurrentName = $_POST['inputCurrName'];
// Your laravel code here..
$user_data = [
'family' => $inputFamilyName,
'curr_name' => serialize($inputCurrentName),
'curr_name_optional' => implode(',', $inputCurrentName),
'curr_name_optional_1' => json_encode($inputCurrentName)
];
echo "<pre>";
print_r($user_data);
echo "
";}?>Фамилия:Название Curr:Название Curr:Название Curr:Отправить
Кроме того, я бы позаботился о том, чтобы обрезать и очистить входные данные вашей формы перед вставкой в базу данных.