在Doctrine 2中查找或创建(upsert)功能

时间:2012-10-15 15:17:15

标签: doctrine doctrine-orm

Doctrine 2是否具有内置的upsert功能?它似乎没有,但我无法找到明确的是或否答案。

如果确实如此,我当然有兴趣看一个例子和/或一些文档。

2 个答案:

答案 0 :(得分:3)

我相信我找到了答案。截至今天(10/15/2012),对于Doctrine来说,有一个开放的“add upsert support”问题。我认为如果Doctrine 2确实有upsert支持,这张票仍然不会打开,所以我想这是我的最终答案。

答案 1 :(得分:3)

Doctrine中已存在Upsert。

如果要返回文档,则必须设置 findAndUpdate() returnNew()。设置 upsert(),您就可以开始了。

例如:

$documentMannager->createQueryBuilder('App\Domain')
->findAndUpdate()
->returnNew()
->field('_id')->equals($id)
->field('page')->equals($page)
->field('count')->inc(1)
->upsert()
->getQuery()
->execute();

这是我实现桶模式的方式。