2012-10-11 42 views
5

我已經加入這一行我composer.json:如何在Zend Framework 2中配置主義擴展?

"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' 
      ), 
     ), 
    ), 
), 

然後我想在我的實體使用timestampable annotaion,例如:

/** 
* @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。

+0

可能是太明顯了,但你也阿迪'Gedmo'命名空間來裝載?在這兩個,'application.config.php'和你的實體類中的usestatements? – Sam

+0

我有同樣的問題,試圖生成實體類。你有這個工作嗎? – atodd

+0

@atodd檢查我的答案,我已經明白了這一點。 –

回答

12

解決的辦法是改變我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', 
      ), 
     ), 
    ), 
), 
相關問題