2011-12-23 3 views
3

수동으로 설정하지 않은 경우 엔티티 필드 중 하나를 자동으로 설정하려고합니다. 이것을 확인하는 방법이 있습니까? 필드에는 기본값이 있으므로 단순히 값을 비교할 수는 없습니다. Doctrine이 가치가 변했고 그 정보에 액세스 할 수 있는지 여부를 유지하는지 궁금합니다.prePersist()에서 값이 변경되었는지 확인할 수 있습니까?

또한 DoPrine 2의 prePersist는 Doctrine 1의 preInsert에 해당합니까? create 문에서 코드 만 실행하도록하려면 어떻게해야합니까?

감사

당신이 엔티티에 Doctrine\ORM\EntityManager#persist를 호출 할 때 prePersist 이벤트 ( docs about prePersist)가 트리거됩니다

답변

3

. 엔티티에 대한 변경 사항을 확인해야하는 경우 onFlush 이벤트 (docs about onFlush)를 확인하는 것이 좋습니다. 여기에서 Doctrine\ORM\UnitOfWork API를 사용하여 엔티티에 적용한 모든 변경 사항을 얻을 수 있습니다. 항목에 대한 추적 변경은 Doctrine\ORM\EntityManager#persist

관련 문제