0

Mongodbとsymfony2を使用して、ドキュメントを別のコレクションに保存しようとしています

これは、ドキュメントをデータベースに設定する私のコントローラーです。

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()であるため、コレクション名はPostです。ドキュメントをcharlies_postsなどの名前のコレクションまたは任意の文字列に変数として保存したいと思います。

4

2 に答える 2

2

簡単です:)ドキュメントクラスの定義では、「collection」パラメータを使用するだけです。

ここに例があります:

<?php

namespace MyProject\Document;

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

/**
 * @ODM\Document(
 *     collection="charlies_posts"
 * )
 */
class Post
{
于 2012-08-01T11:31:50.357 に答える
0

ええ、あなたが言うように、それをパラメータとして定義することができます。

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

この場合、YAMLマッピングファイルで別のコレクションが選択される可能性がありますが、私の場合、ユーザーに関連する投稿があるため、コレクション名を動的に設定したいので、charlies投稿はcharlies_postコレクションに移動し、peter投稿はpeter_postに移動する必要がありますコレクション...

これを設定する方法があるはずなのに、見つからない。

于 2012-08-02T07:13:43.653 に答える