如何在laravel

时间:2017-01-17 16:00:01

标签: laravel laravel-5

我的项目是在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"}
          ]}

我的问题是如何将这些数据保存在单独的行中,如果存在数据,则不应该创建行。

1 个答案:

答案 0 :(得分:1)

首先,您需要使用json_decode()将数据转换为数组,例如:

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

然后,您应该迭代此数组并使用updateOrCreate()方法更新现有行或创建新行。例如,如果您使用ID和ID来标识行:

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