2017-01-17 216 views
1

我的项目是在angularjs + Laravel上。如何在laravel中保存数据库中的动态数据

从前端我发送动态生成的输入到laravel控制器。

场景是我正在采取家庭的细节,其中子字段是动态的。所以,如果你点击添加更多它会生成另一个输入字段。

最初Person X有1个孩子,即ROohan。现在他有2个,现在当他发送3个新孩子的数据时,我希望这2个孩子的数据不会超过写入现在的2个孩子。

我这是我在控制我收到

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和ID来标识一行:

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

可以请你多提一些。我没有得到正确的输出。 @Alexey Mezenin – Mohammed

+0

如果用户删除了某些特定数据,我该如何从表中删除该字段。 @AlexeyMezenin – Mohammed

相关问题