Symfony 2 StofDoctrineExtensionBundle时间戳为odm(MongoDB)

时间:2012-04-14 21:16:58

标签: mongodb symfony doctrine-orm

我尝试使用StofDoctrineExtenstion中的时间戳行为作为我的对象,但它不起作用。对象已成功保存,但未保存createdAt属性。

这是我的配置:

#Doctrine ODM Configuration
doctrine_mongodb:
    connections:
        default:
            server: mongodb://localhost:27017
            options:
                connect: true
    default_database: rent
    document_managers:
        default:
            auto_mapping: true

#stof doctrine extension
stof_doctrine_extensions:
    mongodb:
        default:
            timestampable: true

和class(我也尝试对主对象使用timestampable行为)

use Gedmo\Mapping\Annotation as Gedmo;

/**
 * @MongoDB\MappedSuperclass
 */
abstract class BaseApartment
{

     /**
     * @Gedmo\Timestampable(on="create")
     * @MongoDB\Date
     */
    private $createdAt;
}

Symfony 2.0.12,我的deps文件:

[StofDoctrineExtensionsBundle]
    git=git://github.com/stof/StofDoctrineExtensionsBundle.git
    target=/bundles/Stof/DoctrineExtensionsBundle
    version=v1.0 (also tried version 1.1)

[gedmo-doctrine-extensions]
    git=git://github.com/l3pp4rd/DoctrineExtensions.git
    target=gedmo-doctrine-extensions

怎么了?有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我认为这是版本兼容性的问题。问题(可能不是 问题,但至少一个问题)似乎是 gedmo-doctrine-extensions Stof的 DoctrineExtensionsBundle 彼此不兼容。

例如,我刚刚使用这个版本的配对(适用于Symfony版本2.0.15):

[gedmo-doctrine-extensions]
    git=git://github.com/l3pp4rd/DoctrineExtensions.git
    version=origin/doctrine2.1.x

[DoctrineExtensionsBundle]
    git=git://github.com/stof/StofDoctrineExtensionsBundle.git
    target=/bundles/Stof/DoctrineExtensionsBundle
    version=origin/1.0.x

答案 1 :(得分:0)

尝试将deps文件中的版本更改为:

[Stof-DoctrineExtensionsBundle]
   git=https://github.com/stof/StofDoctrineExtensionsBundle.git
   target=/bundles/Stof/DoctrineExtensionsBundle
   version=origin/1.0.x

在我做出改变之前,我遇到了同样的问题,接着是bin/vendors install --reinstall,它开始为我工作。