Php Zend Framework 2-条令2-在时间戳字段创建
我想在ZF2中创建一个自定义创建的注释。我在Symfony2中找到了如何构建这样一个注释的方法 一切似乎都很容易复制,除了注册预科生监听器 Symfony中的代码为:Php Zend Framework 2-条令2-在时间戳字段创建,php,doctrine-orm,timestamp,zend-framework2,event-listener,Php,Doctrine Orm,Timestamp,Zend Framework2,Event Listener,我想在ZF2中创建一个自定义创建的注释。我在Symfony2中找到了如何构建这样一个注释的方法 一切似乎都很容易复制,除了注册预科生监听器 Symfony中的代码为: services: created_at_listener: class: Scandio\Annotations\Driver\CreatedAtDriver tags: - {name: doctrine.event_listener, event: prePersist} argument
services:
created_at_listener:
class: Scandio\Annotations\Driver\CreatedAtDriver
tags:
- {name: doctrine.event_listener, event: prePersist}
arguments: [@annotation_reader]
如何在Zend中实现这一点,有什么建议吗
谢谢 我找到了一个不同的解决方案来创建在时间戳创建的PrePersist:
/**
* ...
* @ORM\HasLifecycleCallbacks
* ...
*/
class ChangeRequest
...
/**
* @ORM\Column(type="datetime", nullable=true)
* @Form\Attributes({"type":"text"})
* @Form\Options({"label":"Created at"})
* @Form\Exclude()
*/
protected $created_at;
...
/**
* @ORM\PrePersist
*/
public function timestamp()
{
if(is_null($this->getCreatedAt())) {
$this->setCreatedAt(new \DateTime());
}
return $this;
}
我找到了一个不同的解决方案来创建在时间戳创建的PrePersist:
/**
* ...
* @ORM\HasLifecycleCallbacks
* ...
*/
class ChangeRequest
...
/**
* @ORM\Column(type="datetime", nullable=true)
* @Form\Attributes({"type":"text"})
* @Form\Options({"label":"Created at"})
* @Form\Exclude()
*/
protected $created_at;
...
/**
* @ORM\PrePersist
*/
public function timestamp()
{
if(is_null($this->getCreatedAt())) {
$this->setCreatedAt(new \DateTime());
}
return $this;
}
更简单的解决方案:
class ChangeRequest
{
public function __construct()
{
$this->created_at=new \DateTime();
}
...
/**
* @ORM\Column(type="datetime", nullable=true)
* @Form\Attributes({"type":"text"})
* @Form\Options({"label":"Created at"})
* @Form\Exclude()
*/
protected $created_at;
...
}
无需昂贵的事件功能。更简单的解决方案:
class ChangeRequest
{
public function __construct()
{
$this->created_at=new \DateTime();
}
...
/**
* @ORM\Column(type="datetime", nullable=true)
* @Form\Attributes({"type":"text"})
* @Form\Options({"label":"Created at"})
* @Form\Exclude()
*/
protected $created_at;
...
}
没有昂贵的事件功能