0

我有这样的数据库

=== Group ===
id
member_id
decsription

=== Member ===
id
name
description

一切正常。现在我扩展了我的 Group 表并添加了一些额外的字段,例如created_byand 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

Make sure your created_by and updated_by fields are DATETIME then when you run UPDATE queries against them to update the data, make sure you pass NOW() without any quotes. This will update those fields to the current DATETIME e.g. 2012-02-17 10:00:00.

Hope this helps.

于 2012-02-17T10:00:52.830 回答