Я добавил эту строку в мой 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' ), ), ), ),
Затем я хочу использовать 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.
Решение состояло в том, чтобы изменить файл 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', ), ), ), ),