我的项目是在angularjs + Laravel。
从前端我将动态生成的输入发送到laravel控制器。
场景是我正在拍摄子字段是动态的家庭详细信息。如果单击“添加更多”,它将生成另一个输入字段。
最初人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 :(得分:1)
首先,您需要使用json_decode()
将数据转换为数组,例如:
$familyData = json_decode($data, true)['famdet'];
然后,您应该迭代此数组并使用updateOrCreate()
方法更新现有行或创建新行。例如,如果您使用ID和ID来标识行:
foreach ($familyData as $row) {
Model::updateOrCreate(['id' => $row['id']], $row)
}