doctrine2 получить информацию об обновленном поле - PullRequest
1 голос
/ 06 мая 2011

Привет, я хочу как-то выяснить, какое поле было обновлено в контроллере, я не нашел ничего похожего на то, что я пытаюсь достичь в API doc для UnitOfWork.Например, я хочу добавить код @PreUpdate, подобный этому

/** @PreUpdate */ 
function updateAllIsDefaultFields(){
    //only if $this->isDefault propery for this entity is changed to 1 from its previous state, then update all other entities so they all have isDefault to 0

//else, means that this field is not changed, don't do anything

    }

Или это нужно делать из контроллера при каждом действии?

Я знаю, что могу делать это каждый раз, только если для $ this-> isDefault установлено значение 1, но я бы хотел избежать его из-за производительности и мог бы найти его полезным для некоторых других сценариев.Заранее спасибо

Ответы [ 2 ]

1 голос
/ 06 мая 2011

Вам нужно будет написать Подписчик на событие .Вероятно, используя событие onFlush, вы можете извлечь набор изменений сущностей из UnitOfWork, чтобы определить, было ли обновлено определенное поле, а затем сделать то, что вы хотите.

1 голос
/ 06 мая 2011

Есть несколько хороших поведений для Doctrine2. Вот пример похожего на ваш случай.

...