2012-10-11 3 views
5

Ich habe diese Linie meiner composer.json hinzugefügt:Wie konfiguriert man Doktrin-Erweiterungen in Zend Framework 2?

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

Und das ist im Inneren module.config.php mein Moduls:

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

Dann will ich timestampable annotaion in meine Einheiten verwenden, zum Beispiel:

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

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

Aber das funktioniert nicht. Wenn die Entität mit den obigen Anmerkungen beibehalten wird, sind die erstellten und aktualisierten Spalten NULL.

+0

könnte zu offensichtlich sein, aber Sie auch adde 'Gedmo' Namespace geladen werden? In beiden, "application.config.php" und die useinstatements in Ihrer Entity-Klasse? – Sam

+0

Ich habe das gleiche Problem beim Versuch, die Entitätsklassen zu generieren. Hast du das zur Arbeit gebracht? – atodd

+0

@atodd Überprüfen Sie meine Antwort, ich habe das herausgefunden. –

Antwort

12

Die Lösung war mein module.config.php zu ändern, um dies eher wie zu sein:

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