如何使用Doctrine2 Extensions的Versionable实体?

时间:2011-04-27 19:17:38

标签: php version doctrine-orm

我正在尝试使用Doctrine2Extensions中的Versionable扩展名,但我无法实现它。

提到我们需要'实现'Versionable接口(顺便说一句是空的)

  

您的实体的要求是:

     

单个标识符列(字符串或   整数)

     

实体必须进行版本控制   (使用@version注释)

     

实现Versionable看起来   像:

namespace MyProject;
use DoctrineExtensions\Versionable\Versionable;

class BlogPost implements Versionable {
    // blog post API 
}

来自文档。

我不明白的是:

单个标识符列(字符串或整数) 必须对实体进行版本控制(使用@version注释)

这两项要求意味着什么?

这是我的实体:

<?php
namespace Jo\Model;
use DoctrineExtensions\Versionable\Versionable;
/**
 * @Entity
 */
class Comment implements Versionable
{
    /**
     * @Id
     * @Column(type="integer")
     * @GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @Column(type="string", length=255)
     */
    protected $body;

使版本有效缺少什么?

1 个答案:

答案 0 :(得分:3)

您的$ id属性提供单个标识符。

从我阅读的东西中,你还需要一个$ version(或类似)属性,可以是整数或日期时间,并且必须使用@Version

进行注释。

这个(旧的)blog post可能有助于您提供更多见解(但其中一些可能已过时)