您可以为Doctrine ODM设置默认ID策略吗?

时间:2012-10-06 03:12:43

标签: php mongodb doctrine odm

使用Doctrine ODM为文档的id字段设置注释时,您可以指定默认MongoId方法的不同密钥生成策略:

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

这要求您为您设置的每个新文档映射指定此策略。是否可以更改整个应用程序的默认策略?也许通过连接级别的配置选项?

1 个答案:

答案 0 :(得分: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();
相关问题