2011-04-27 99 views
3

我正在尝试使用Doctrine2Extensions的Versionable扩展名,但我无法实现它。如何使用Doctrine2扩展使用可版本化实体?

需要提及的是,我们需要“工具”版本可控接口(其中的方式为空)您的实体

的要求是:

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

实体必须(使用@version注释)

实现版本可控看起来012进行版本喜欢:

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; 

什么缺失,使版本的作品?

回答

3

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

从我的东西阅读,你还需要一个$版本(或类似)的财产,它可以是整数或日期时间,并且必须与@Version

这(旧)来annoted blog post可以帮助给你一些更多的见解(但其中一些可能会过时)

+0

非常感谢你,我虽然认为@Entity需要@Version – JohnT 2011-04-27 21:49:54

+0

链接已死,请参阅http://www.doctrine-project.org /blog/doctrine2-behaviours-nutshell.html#versionable – worenga 2012-03-23 18:54:22

+0

已更新链接的答案。 – timdev 2012-03-23 19:39:44