2017-08-26 12 views
0

新しいレコードを既存のレコードに基づいてデータベースに保存する可能性はありますか?Symfony編集で新しいレコードを追加

私はURLに 'id'を渡しています。 nullの場合は、プリセット名のフォームが作成され、送信後に新しいアイテムがデータベースに追加されます。編集は同じです。

私の目標は: 1)データベースからの既存のデータをフォームにあらかじめ入力しておく必要があります(そのため、私はURLにidを渡して既存のレコードを取得しています)。 2)新しいレコードとして保存します。

残念ながら、私のコントローラは編集操作のようにしか動作しません。編集したデータは選択した項目のみを変更します。新しい項目として保存しません。

コントローラでこれを行う可能性はありますか?どのように既存のオブジェクトをデータベースからフォームに取り込み、以前のオブジェクトに基づいて新しいレコードを保存するのですか?

+0

私は正しくIDを渡したい場合は、データベースからオブジェクトをフォームに移入し、そのオブジェクトを新しいものとして保存しますか? – kunicmarko20

答えて

1

アイテムを保存する前に、IDを設定解除し、保存すると新しいオブジェクトになります。

if ($form->isSubmitted() && $form->isValid()) { 
    $item = $form->getData(); 
    $newItem = clone $item; 
    $em->persist(newItem); 
    $em->flush(); 

    return new Response('Item created!'); 
} 

また、私は作成と編集のアクションを分けると思います。

+0

作品は魅力的です。ありがとうございました! – fabtosz

関連する問題