繁体   English   中英

如何在Zend Framework 2中配置doctrine扩展?

[英]How to configure doctrine extensions in Zend Framework 2?

我已将此行添加到我的composer.json中:

"gedmo/doctrine-extensions": "dev-master"

这是在我的模块的module.config.php中:

'doctrine' => array(
    'driver' => array(
        __NAMESPACE__ . '_driver' => array(
            'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
            'cache' => 'array',
            'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity'),
        ),
        'orm_default' => array(
            'drivers' => array(
                __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
            ),
        ),
    ),
),

然后我想在我的实体中使用带时间戳的注释,例如:

/**
 * @Gedmo\Timestampable(on="create")
 * @ORM\Column(type="datetime",nullable=true)
 */
private $created;

/**
 * @Gedmo\Timestampable(on="update")
 * @ORM\Column(type="datetime",nullable=true)
 */
private $updated;

但这不起作用。 当我使用上面的注释持久化实体时,创建和更新的列为NULL。

解决方案是将我的module.config.php更改为更像这样:

'doctrine' => array(
    'driver' => array(
        __NAMESPACE__ . '_driver' => array(
            'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
            'cache' => 'array',
            'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity'),
        ),
        'orm_default' => array(
            'drivers' => array(
                __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
            ),
        ),
    ),
    'eventmanager' => array(
        'orm_default' => array(
            'subscribers' => array(
                'Gedmo\Timestampable\TimestampableListener',
                'Gedmo\SoftDeleteable\SoftDeleteableListener',
            ),
        ),
    ),
),

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM