Трек созданBy и обновленBy в Yii - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть такая база данных

=== Group ===
id
member_id
decsription

=== Member ===
id
name
description

Все работает отлично. Теперь я расширил таблицу групп и добавил несколько дополнительных полей, таких как created_by и updated_by, по которым я могу отслеживать, кто имеетсоздал и кто внес изменения. Чтобы добиться того, что я должен делать и как это сделать? Любая помощь и предложения будут весьма полезны.

Ответы [ 3 ]

1 голос
/ 17 февраля 2012

Вы можете расширить beforeSave / beforeUpdate в своем классе AR и просто установить $ this-> updated_by = Yii :: app () -> user-> getId (); на обновлении. Если вы переопределите эти методы, обязательно верните true, когда вы закончите, чтобы не препятствовать сохранению. Вы также можете установить create_at и updated_at в новое CDbExpression ('NOW ()'); так что это всегда актуально.

Надеюсь, это поможет!

Примечание: Не говоря уже о том, что очень приятно, что ваши модели AR знают о текущем вошедшем в систему пользователе, но это должно работать просто отлично, и это стоит рассмотреть.

0 голосов
/ 17 февраля 2012

Если это веб-приложение, то вы можете использовать сеанс, чтобы поместить информацию о пользователе в сеанс и получить доступ к идентификатору пользователя и сохранить ее в базе данных (убедитесь, что у вас есть внешний ключ к таблице пользователя)

Если вы используете Spring Framework, вы можете использовать перехватчики для доступа и установки идентификатора пользователя для каждого вызова обновления базы данных

0 голосов
/ 17 февраля 2012

Убедитесь, что ваши поля created_by и updated_by имеют значение DATETIME, а затем при выполнении запросов UPDATE к ним для обновления данных убедитесь, что вы передали NOW() без кавычек. Это обновит эти поля до текущего DATETIME, например. 2012-02-17 10:00:00.

Надеюсь, это поможет.

...