如何使用StofDoctrineBundle记录用户名和电子邮件地址?

时间:2013-12-16 11:28:41

标签: symfony logging bundle yaml add-on

我正在使用Symfony2运行Symfony2应用程序,我正在使用FOSUserBundle来管理我的用户。

现在我实现了StofDoctrineExtensionsBundle以使用可记录扩展。很遗憾,我无法记录usernameemail。如果我尝试通过YML激活日志记录:

Acme\MyBundle\Entity\User:
  type: entity
  gedmo:
    loggable: true
  fields:
    id:
      ...
    username:
      type: string
      gedmo:
        - versioned
    email:
      type: string
      gedmo:
        - versioned

我得到了

  

字段或标识符列映射中实体上的列'username'的重复定义。

所以我尝试激活注释中的日志记录(注意我通过YML定义了所有其他实体):

use FOS\UserBundle\Model\User as BaseUser;
use Gedmo\Mapping\Annotation as Gedmo;

/**
 * @Gedmo\Loggable
 */
class User extends BaseUser {
    ...
    /**
     * @var string
     * @Gedmo\Versioned
     */
    protected $username;

    /**
     * @var string
     * @Gedmo\Versioned
     */
    protected $email;

但是:没有任何事情发生。我的User的所有其他属性都会被记录,但usernameemail不会。

为了激活这两个属性的日志记录,我需要更改什么?或者这是我无法影响的FOSUserBundle和StofDoctrineExtensionsBundle之间的相互依赖性?

1 个答案:

答案 0 :(得分:0)

您是否添加了此配置?:

   //app/config/config.yml
    orm:
      auto_generate_proxy_classes: "%kernel.debug%"
      auto_mapping: true
      mappings:
       translatable:
          type: annotation
          alias: Gedmo
          prefix: Gedmo\Translatable\Entity
          dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity"
       loggable:
          type: annotation
          alias: Gedmo
          prefix: Gedmo\Loggable\Entity
          dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/Entity"
       tree:
          type: annotation
          alias: Gedmo
          prefix: Gedmo\Tree\Entity
          dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Tree/Entity"
       sluggable:
          type: annotation
          alias: Gedmo
          prefix: Gedmo\Sluggable\Entity
          dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Tree/Entity"