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