2012-08-01 56 views
0

我试着使用的MongoDB和Symfony2的存储在不同的集合的文档 - MongoDB的与Symfony2的

这是我的控制器谁设置文档进DB存储在不同的集合的文档。

public function createAction(){ 
$post = new Post(); 
$post->setUrl('A Foo Bar'); 
$post->setTitle('asdf'); 
$dm = $this->get('doctrine.odm.mongodb.document_manager'); 
$dm->persist($post); 
$dm->flush(); 
return new Response('Created post id '.$post->getId());} 

正如你所看到的,这是DoctrineMongoDBBundle

的官方文档的例子,但问题是,默认情况下,它创建的文档转换成一个命名为类集合,在我的情况是邮政(),所以集合名称是Post。我想将文档保存到一个名为charlies_posts的集合或任何字符串作为变量。

回答

2

这很简单:)在文档类的定义中,只需使用“collection”参数即可。

这里是个例:

<?php 

namespace MyProject\Document; 

use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM; 

/** 
* @ODM\Document(
*  collection="charlies_posts" 
*) 
*/ 
class Post 
{ 
0

Yeahp,就像你说的,我们可以定义为一个参数。

Documents\User: 
    type: document 
    db: my_db 
    collection: charlies_post 

在这种情况下,在不同的集合,可以选择YAML映射文件,但在我的情况,我想dinamically设置的集合名称,因为我有相关的用户后如此霹雳职位应该去charlies_post集合和彼得的帖子应该去peter_post收集...

我想,必须有一种方法来设置这个,但我找不到它..

相关问题