2017-01-17 2 views
1

Мой проект находится на angularjs + Laravel.Как сохранить динамические данные в базе данных в laravel

Из интерфейса я отправляю динамически генерируемый вход в контроллер laravel.

Сценарий: Я беру семейные данные, где дочернее поле является динамическим. Поэтому, если вы нажмете «Добавить больше», он сгенерирует другое поле ввода.

Первоначально человек X имеет 1 ребенка, а именно ROohan. Теперь у него есть еще 2. Теперь, когда он отправляет данные из 3 новых детей, я хочу, чтобы данные двух детей добавились без написания настоящего настоящего ребенка.

Мой запрос, который я получаю в контроллере

family_data : 
     {"famdet":[{"id":"choice1","cname":"Rohan","doa":"2017-01-12"}, 
     {"id":"choice2","cname":"sohan","cdob":"2017-01-13"},   
     {"id":"choice3","cname":"nitesh","cdob":"2017-01-07"} 
      ]} 

моя проблема заключается в том, чтобы сделать эти данные сохранить в отдельной строке, и если данные присутствуют, то строка не должна получить создана.

+0

Создайте модель и соответствующую таблицу базы данных. Затем проведите через каждый из входов, проверьте, что модели уже существуют, а если нет, создайте их. – Loek

ответ

1

Прежде всего, необходимо использовать json_decode() для преобразования данных в массив, например:

$familyData = json_decode($data, true)['famdet']; 

Тогда вы должны перебрать этот массив и использовать updateOrCreate() способ обновить существующие строки или создавать новые. Например, если вы используете и ID для идентификации строки:

foreach ($familyData as $row) { 
    Model::updateOrCreate(['id' => $row['id']], $row) 
} 
+0

можете ли вы, пожалуйста, рассказать больше. Я не получаю должного результата. @Alexey Mezenin – Mohammed

+0

Как удалить поле из таблицы, если пользователь удалил некоторые данные. @AlexeyMezenin – Mohammed

Смежные вопросы