1

我想created_atZF2. 我找到了一个(德语)教程,如何在 Symfony2 中构建这样的注释。

prePersist除了听众的注册之外,一切似乎都很容易复制。

Symfony 中的代码是:

services:
created_at_listener:
    class: Scandio\Annotations\Driver\CreatedAtDriver
    tags:
      - {name: doctrine.event_listener, event: prePersist}
    arguments: [@annotation_reader]

任何建议如何在 Zend 中实现这一点?

谢谢!

4

2 回答 2

5

感谢 Ocramius,我找到了一个不同的解决方案来创建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;
    }
于 2013-06-03T14:24:11.350 回答
4

更简单的解决方案:

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;

    ...
}

没有昂贵的事件功能。

于 2014-02-28T14:22:52.900 回答