1

データオブジェクトに加えられたすべての変更を監査証跡したいと考えています。Event データオブジェクトがあり、誰がそれを変更したか、いつ変更されたか、何が変更されたかなどを知りたいとします (ページに似ています)。Silverstripe サイトでは Verioned の使用を推奨していますが、実装例が見つかりません。最良の例は、既に Versioned が実装されている Pages です。基本的なルールは、デコレータでaugmentDatabase()メソッドを定義することです。したがって、データ オブジェクト (拡張子) に DataExtention を使用し、拡張されたものをイベント データ オブジェクトに使用したいと考えています。しかし、簡単な例はありますか?

4

2 に答える 2

3

イベント DataObject の複数のバージョンを管理および監視する場合、そのDataObject のバージョン管理された拡張機能を使用することを宣言するだけです。

Class Event extends DataObject{
    static $extensions = array(
    "Versioned('Stage', 'Live')"
);
    ...
}

次に、dev/build を実行します。これで、Event、Event_Live、および Event_versions テーブルが作成されます。その後、Versioned.php で利用可能なメソッドを確認し、Event で使用できます。つまり、publish() です。これで始められるはずです。

于 2013-02-21T00:49:49.093 に答える
2

「SilverStripe でのバージョニングは、Versioned クラスを通じて処理されます。これは、DataObject サブクラスに適用できる DataExtension です。」

「同様に、バージョン管理されたベースの上に作成するサブクラスは、必要に応じて自動的に結合される追加のテーブルの作成をトリガーします。」

データベース コンテンツのバージョン管理の例とともにさらに読むためのリンクを次に示します 。

于 2013-02-21T01:06:48.720 に答える