2017-01-17 9 views
1

私のプロジェクトはangularjs + Laravelにあります。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

モデルと対応するデータベーステーブルを作成します。次に、各入力をループし、モデルがすでに存在するかどうかをチェックし、存在しない場合は作成します。 – 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

関連する問題