baz*_*azo 1 doctrine mongodb doctrine-odm
我正在为我的网站做一个注册系统,并希望防止使用相同的电子邮件地址重复注册.
用户类的声明如下所示:
/**
* @Document
*/
class User extends BaseEntity
{
private
/**
* @Id
*/
$id,
/**
* @String @Index(unique=true)
*/
$email
;
}
Run Code Online (Sandbox Code Playgroud)
但每当我使用相同的电子邮件保存用户时,不会引发异常,我会得到重复.
我找到了我需要做的地方$ documentManager-> flush(array('safe'=> true)); 但这没有用.
我怎样才能实现我的需要?谢谢
我遇到了类似的问题.您可以通过在mongo控制台中键入以下内容来查看Doctrine创建的索引:
db.system.indexes.find()
Run Code Online (Sandbox Code Playgroud)
我必须按照这些说明直接在mongo中创建索引.之后,将不会创建重复项.
但是,Symfony2/Doctrine似乎没有抛出任何异常,插入只是无声地失败.如果直接在控制台中执行,Mongodb会提醒您插入失败的插件.
--edit:一个例外是当抛出array('safe'=>true)用作参数来冲洗()按照原来的职位.