我在两个不同的上下文中使用表单类:既可以创建新记录,也可以编辑该记录。我设置了如下验证器来检查 URL 字段是否唯一。
$this->validatorSchema->setPostValidator(new sfValidatorAnd(array(
new sfValidatorDoctrineUnique(array('model' => 'Page', 'column' => array('url')), array('invalid' => 'This URL already exists.'))
)));
当我创建新记录时,验证器工作得很好。但是,在编辑现有记录时,它会引发错误,因为它将自己检测为重复。换句话说,如果我编辑记录但不更改 URL,则会引发重复错误。
这一定是一个常见问题,所以我想知道 Symfony 的处理方式是什么?基本上我希望它在保存时忽略自己(不存在重复),但仍然运行后验证器以确保不存在真正的重复。