我正在为我的网站建立一个注册系统,并希望防止使用同一电子邮件地址进行重复注册。
用户类的声明如下所示:
/**
* @Document
*/
class User extends BaseEntity
{
private
/**
* @Id
*/
$id,
/**
* @String @Index(unique=true)
*/
$email
;
}
但是每当我使用相同的电子邮件保存用户时,都不会引发异常,并且我会收到重复的邮件。
我发现我需要做 $documentManager->flush(array('safe'=>true)); 的地方但这没有帮助。
我怎样才能实现我所需要的?谢谢
我也有类似的问题。该索引不是由 Doctrine 创建的,您可以通过在 mongo 控制台中键入以下内容来看到:
db.system.indexes.find()
我必须按照这些说明直接在 mongo 中创建索引。 之后将不会创建重复项。
然而 Symfony2/Doctrine 似乎没有抛出任何异常,插入只是默默地失败了。如果您直接在控制台中执行此操作,Mongodb 确实会提醒您插入失败。--编辑:根据原始帖子,当
array('safe'=>true)
用作冲洗()的参数时,会抛出异常 is
。