Zend Framework 2 - Doctrine 2 - 创建于时间戳字段 [英] Zend Framework 2 - Doctrine 2 - Created at timestamp field

查看:127
本文介绍了Zend Framework 2 - Doctrine 2 - 创建于时间戳字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在 ZF2 中创建自定义 created_at 注释。我发现一个(德语)教程如何构建这样的注释Symfony2。

I want to create a custom created_at annotation in ZF2. I found a (German) tutorial how to build such an annotation in Symfony2.

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

Everything seems easy to copy except the registering of the prePersist listener.

Symfony中的代码是:

The code in Symfony is:

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

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

Any suggestions how to achieve this in Zend?

谢谢! / p>

Thanks!

推荐答案

感谢Ocramius 我发现创建一个不同的解决方案,用于创建一个 c> PrePersist 创建时间戳:

Thanks to Ocramius I found a different solution for creating a PrePersist created at timestamp:

/**
 * ...
 * @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;
    }

这篇关于Zend Framework 2 - Doctrine 2 - 创建于时间戳字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆