1

たとえば、オブジェクトの作成と更新のためのタイムスタンプ関数を提供するGidmo拡張機能を見つけました。

それが私(そして奇妙なことに、Zendの人たちの他の誰も)が必要としているものです!

ここuseに示すように、名前空間を含めてみました。しかし、成功しません。Doctrine検証は有効で、他の場所ではエラーを返しませんが、新しいオブジェクトを作成するとき、属性は空です。created_at

私もこのアプローチを試しましたが、同じ結果になりました。

私が間違っていることについて何か考えはありますか?

composer.json:

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

Entity.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")

ただし、バージョン番号(タイムスタンプではない)は、特定のデータベースプラットフォームでのタイムスタンプの解像度に応じて、可能性のあるタイムスタンプとは異なり、高度な同時実行環境で競合する可能性がないため、優先する必要があります。(出典:Doctrine Documentation)

于 2012-12-28T15:35:36.970 に答える