2017-01-17 2 views
1

내 프로젝트가 angularjs + Laravel에 있습니다.데이터베이스의 동적 데이터를 laravel에 저장하는 방법

프론트 엔드에서 나는 동적으로 생성 된 입력을 laravel 컨트롤러로 보내고 있습니다.

시나리오는 자녀 필드가 동적 인 가족 세부 정보를 취하고 있습니다. 추가를 클릭하면 다른 입력 필드가 생성됩니다.

처음에는 사람 X가 1 명의 자녀, 즉 ROohan이 있습니다. 이제 그는 2 명이 더 있습니다. 이제 3 명의 새로운 자녀의 데이터를 보낼 때, 2 명의 자녀가 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를 사용하여 행을 식별하는 경우 :

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

더 많은 것을 elobrate 할 수 있습니까? 나는 적절한 결과를 얻지 못하고있다. @Alexey Mezenin – Mohammed

+0

사용자가 특정 데이터를 제거한 경우 어떻게 테이블에서 필드를 제거 할 수 있습니까? @AlexeyMezenin – Mohammed

관련 문제