Ric*_*nop 5 php doctrine-orm zend-framework2 doctrine-extensions
我已将此行添加到我的composer.json中:
"gedmo/doctrine-extensions": "dev-master"
Run Code Online (Sandbox Code Playgroud)
这是在我的模块的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'
),
),
),
),
Run Code Online (Sandbox Code Playgroud)
然后我想在我的实体中使用带时间戳的注释,例如:
/**
* @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime",nullable=true)
*/
private $created;
/**
* @Gedmo\Timestampable(on="update")
* @ORM\Column(type="datetime",nullable=true)
*/
private $updated;
Run Code Online (Sandbox Code Playgroud)
但这不起作用.当我使用上面的注释持久化实体时,创建和更新的列为NULL.
Ric*_*nop 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',
),
),
),
),
Run Code Online (Sandbox Code Playgroud)