Как создать прослушиватель событий во время (или до ??) действия сохранения, которое определяет, выполняется ли изменение в данном поле - PullRequest
0 голосов
/ 18 ноября 2011

Я пытаюсь обновить определенные поля во время сохранения, но только если изменяется одно поле, но я не знаю, как это сделать.

Дополнительная информация: если пользователь выполняет редактирование поля 'is_activation' в моей модели, тогда и только тогда должна вызываться моя функция 'suspendToActive'; в противном случае его всегда следует игнорировать.

Вот мое текущее действие сохранения:

public function save(Doctrine_Connection $conn = null)
      {
        if ($this->isNew() && !$this->getExpiresAt())
        {
                ... // 
        }

        elseif ($this->getIsActivated()) // this is where I'm having trouble...
        {
            suspendToActive();
        }      

    return parent::save($conn);        
  }

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 18 ноября 2011

В Doctrine есть прослушиватели событий, поэтому вы должны использовать функцию preUpdate () вашей модели и использовать данные вызывающих, чтобы проверить, было ли изменено значение.

Подробную информацию вы найдете здесь: http://www.doctrine -project.org / projects / orm / 1.2 / docs / manual / слушатели событий / pl # record-listeners

...