1

我发现了 Gidmo 扩展,它提供了一个用于创建和更新对象的时间戳功能。

这就是我(奇怪的是没有其他 Zend 人)需要的东西!

我尝试通过此处use显示的方式包含名称空间。但没有成功。Doctrine 验证在其他地方返回有效且没有错误,但是在创建新对象时,该属性为空。created_at

我也尝试过这种方法,但结果相同。

任何想法我做错了什么?

作曲家.json:

"require": {
    ...
    "gedmo/doctrine-extensions": "dev-master"

实体.php:

use Gedmo\Mapping\Annotation as Gedmo;
...

class Entity {   

/**
 * @ORM\Column(type="datetime")
 * @Gedmo\Timestampable(on="create")
 * @Form\Attributes({"type":"timestamp"})
 * @Form\Options({"label":"Created at"})
 * @Form\Exclude()
 *
 */
protected $created_at;

}
4

1 回答 1

2

我不知道您是否真的需要扩展来实现您正在寻找的功能,请查看本节中讨论的@Version 注释: Doctrine 文档的乐观锁定

[编辑] @Version 在命名空间下可用(以及所有 Doctrine ORM 映射注释)Doctrine\ORM\Mapping

时间戳字段的用法:@Version @ORM\Column(type="datetime")

整数字段的用法:@Version @Column(type="integer")

然而,版本号(而不是时间戳)应该是首选,因为它们在高度并发的环境中不会潜在地发生冲突,这与时间戳不同,这可能取决于特定数据库平台上时间戳的分辨率。(来源:教义文献)

于 2012-12-28T15:35:36.970 回答