2016-05-11 8 views
0

私のフォームに日付フィールドが1つあります。prePersistまたはpreUpdateが実行された後にsymfony2が再び持続する

エンティティが追加または更新されるたびに、preUpdateメソッドとprePersistメソッドを使用してcurrentDateに設定しました。このフィールドはフォームになく、自動的に追加/更新されていました。

私はこのフィールドをフォームに追加して、別の日付に設定できるようにしたいと思います。私が更新するたびに、フォームに何が投稿されていても常に現在の日付に設定されます。

助けてください。これは私のコードです。

$allocation->setVehicle($vehicle); 
    $allocation->setType($type); 
    $em->persist($allocation); 
    $em->flush(); 

    $allocation->setMutationDate($date->getMutationDate()); 

    $em->persist() 
    $em->flush(); 
+0

まだ、prePersistとpreUpdateを使用している場合は、もちろん、ユーザーの選択を無効にします。 –

+0

@EmanuelOster、実際にこの日付は、ユーザーが他のものを変更したときにも現在の日付に設定されています。だから私は、ライフサイクルコールバックを使用したいが、この特定の場合ではなく、私はprePersistの値をオーバーライドすることができますか? – anujeet

答えて

0

mutationDateModifiedのようなプライベートフラグをエンティティに追加できます。 mutationDateの設定子内でこれをtrueに設定します。次に、prePersist/preUpdateで、mutationDateModifiedがtrueであるかどうかを確認します。はいの場合は、mutationDateを更新しないでください。いずれにしても、後でmutationDateModifiedをfalseに戻してください。

+0

Woaah! 論理的喜び ありがとう – anujeet

関連する問題