0

私はこのようなデータベースを持っています

=== Group ===
id
member_id
decsription

=== Member ===
id
name
description

すべてが正常に機能しています。今、グループ テーブルを拡張し、and のような追加フィールドを追加created_byしましupdated_byた。これにより、誰が作成し、誰が変更を行ったかを追跡できます。何をすべきか、どのように行うべきかを達成するには?ヘルプと提案は非常に高く評価されます。

4

3 に答える 3

1

AR クラスで beforeSave / beforeUpdate を拡張し、単純に $this->updated_by = Yii::app()->user->getId(); を設定できます。更新中。これらのメソッドをオーバーライドする場合は、完了時に true を返して、保存を妨げないようにしてください。また、created_at と updated_at を new CDbExpression('NOW()'); に設定することもできます。これらも常に最新の状態に保たれます。

お役に立てれば!

注: 現在サインインしているユーザーを AR モデルに認識させることが非常に良いと言っているわけではありませんが、問題なく機能するはずであり、検討する価値があります。

于 2012-02-17T12:12:41.670 に答える
0

Webアプリケーションの場合、セッションを使用してユーザー情報をセッションに入れ、ユーザーIDにアクセスしてデータベースに保持できます(ユーザーテーブルへの外部キーがあることを確認してください)

Spring フレームワークを使用している場合は、インターセプターを使用してアクセスし、すべてのデータベース更新呼び出しのユーザー ID を設定する方法を確認できます。

于 2012-02-17T10:05:27.820 に答える
-2

created_byupdated_byフィールドがDATETIMEであることを確認してから、それらに対してクエリを実行してデータを更新するときは、UPDATE引用NOW()符なしで渡すようにしてください。DATETIMEこれにより、これらのフィールドが現在のフィールドに更新されます2012-02-17 10:00:00

お役に立てれば。

于 2012-02-17T10:00:52.830 に答える