特定のフィールドが更新されたときに特定の処理を行いたい。多対多の関係を更新する方法を警告する方法はありますか?
イベントpreUpdateを使用してこれを実行し、更新されるフィールドを確認するのが当然の方法です。それは正常に動作します...多対多のフィールドを除いて。イベントをトリガーしますが、ChangeSetは空です。
/**
* @ORM\PreUpdate
*/
public function updateDate(PreUpdateEventArgs $event){
$changeSet = $event->getEntityChangeSet();
$res = "";
foreach($changeSet as $key => $change){
$line = $key." : ".$event->getOldValue($key)." || ".$event->getNewValue($key);
$res .= $line;
}
}
$ resでは、すべてのフィールドが多対多フィールドを除いて変更されています。
また、私はリスナーでそれをやろうとしていますが、エンティティマネージャから更新されたフィールドを抽出する方法が見つかりません。
ありがとうございます。
詳細情報:更新エンティティから
関係:
/**
* @var Status
*
* @ORM\ManyToMany(targetEntity="User", inversedBy="projectsSupervisor", cascade={"persist"})
* @ORM\JoinTable(name="projects_supervisors")
*/
protected $supervisors;
反対側から:
/**
* @var Project
*
* @ORM\ManyToMany(targetEntity="Task", mappedBy="users")
*/
protected *tasks
symfonyのバージョン:3.1.10