특정 필드가 업데이트 될 때 특정 치료를하고 싶습니다.다 대다 관계에 대한 경고를받는 방법을 업데이트 하시겠습니까?
이벤트를 사용하여 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에서 모든 필드는 다 대다 필드를 제외하고 수정됩니다.
또한 리스너에서 처리하려고 시도하지만 entityManager에서 업데이트 된 필드를 추출하는 방법을 찾을 수 없습니다.
감사합니다.
추가 정보 : 업데이트 엔티티로부터
관계 :
/**
* @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
심포니 버전 : 3.1.10