sfValidatorDoctrineUnique в контексте обновления / редактирования

Я использую класс формы в двух разных контекстах: как для создания новой записи, так и для редактирования этой записи. Я установил пост-валидатор следующим образом, чтобы проверить уникальность поля URL.

$this->validatorSchema->setPostValidator(new sfValidatorAnd(array(
   new sfValidatorDoctrineUnique(array('model' => 'Page', 'column' => array('url')), array('invalid' => 'This URL already exists.'))
)));

Валидатор отлично работает, когда я создаю новую запись. Однако при редактировании существующей записи он выдает ошибку, потому что обнаруживает себя как дубликат. Другими словами, если я редактирую запись, но не изменяю URL-адрес, возникает повторяющаяся ошибка.

Это, должно быть, обычная проблема, поэтому мне интересно, каким будет способ решения этой проблемы в Symfony? В основном я бы хотел, чтобы он игнорировал себя при сохранении (дубликатов не существует), но все же запускал пост-валидатор, чтобы гарантировать отсутствие настоящих дубликатов.

7
задан Tom 2 August 2012 в 18:06
поделиться