1

ドキュメントの id フィールドに Doctrine ODM でアノテーションを設定する場合、デフォルトの MongoId メソッドとは異なるキー生成戦略を指定できます。

/** @ODM\Document(collection="documents") */
class Document
{
    /**
    * @ODM\Id(strategy="UUID")
    */
    protected $id;
}

これには、設定するすべての新しいドキュメント マッピングに対してこの戦略を指定する必要があります。アプリケーション全体のデフォルト戦略を変更することはできますか? おそらく、接続レベルでの構成オプションを介してですか?

4

1 に答える 1

0

遺産足りてない?

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

/** @ODM\Document */
abstract class AbstractDocument
{
   /**
   * @ODM\Id(strategy="UUID")
   */
   protected $id;

   public function getId()
   {
      return $this->id;
   }
}

/** @ODM\Document(collection="MyDocument") */
class MyDocument extends AbstractDocument {}

/** @ODM\Document(collection="AnotherDocument") */
class AnotherDocument extends AbstractDocument {}

次に、次のことができます。

$myDocument = new MyDocument();
$odm->persist($myDocument);
$odm>flush();
$myDocument->getId();
于 2015-03-12T11:50:04.197 に答える