Yii2 и логирование измененных полей

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Yii2 и логирование измененных полей

Сообщение vitalik1183 »

Допустим зашел 1 манагер - обновил 5 полей из 50 полей.
Зашел другой манагер - обновил 2 поля у записи.
Зашел админ - видит какие поля, у какой записи и во сколько правил каждый манагер. Интересует именно набор измененных полей, а не просто время сохранения записи.

Куда копать, как реализовывать? Натолкните.
Yii2!
Аватара пользователя
MaxHero
Сообщения: 144
Зарегистрирован: 2011.09.12, 04:34
Откуда: Украина, Киев

Re: Yii2 и логирование измененных полей

Сообщение MaxHero »

То, что Вам нужно, называется версионированием моделей. Для Yii1 есть, например, такое. Подсмотрите реализацию, запилите behavior для Yii2 и поделитесь с сообществом :)
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Yii2 и логирование измененных полей

Сообщение vitalik1183 »

ну по идее можно отследить разницу при сохранении, что было и что стало, отсюда получить список измененных полей.
Yii2!
Аватара пользователя
MaxHero
Сообщения: 144
Зарегистрирован: 2011.09.12, 04:34
Откуда: Украина, Киев

Re: Yii2 и логирование измененных полей

Сообщение MaxHero »

Странно, что Вы сомневаетесь. Разумеется, это можно сделать. Но суть то в том, что Вам нужно эту разницу (diff полей) как-то хранить, чтобы потом админу показать. Я Вам пример реализации для Yii1 показал.
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Yii2 и логирование измененных полей

Сообщение vitalik1183 »

MaxHero писал(а):Странно, что Вы сомневаетесь. Разумеется, это можно сделать. Но суть то в том, что Вам нужно эту разницу (diff полей) как-то хранить, чтобы потом админу показать. Я Вам пример реализации для Yii1 показал.
да не, мне можно просто записать хоть текстом что такие то поля были изменены, понимаю, что с точки зрения проектирования вариант кривой, но далее эта инфа кроме просмотра нигде и никому не нужна.
Yii2!
unclead
Сообщения: 162
Зарегистрирован: 2015.03.13, 19:44

Re: Yii2 и логирование измененных полей

Сообщение unclead »

посмотрите в сторону https://github.com/Sammaye/yii2-audittrail
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Yii2 и логирование измененных полей

Сообщение vitalik1183 »

ближе к делу, спасибо. Кто что еще наспамит по сабжу?
Yii2!
Аватара пользователя
MaxHero
Сообщения: 144
Зарегистрирован: 2011.09.12, 04:34
Откуда: Украина, Киев

Re: Yii2 и логирование измененных полей

Сообщение MaxHero »

vitalik1183 писал(а):
MaxHero писал(а):Странно, что Вы сомневаетесь. Разумеется, это можно сделать. Но суть то в том, что Вам нужно эту разницу (diff полей) как-то хранить, чтобы потом админу показать. Я Вам пример реализации для Yii1 показал.
да не, мне можно просто записать хоть текстом что такие то поля были изменены, понимаю, что с точки зрения проектирования вариант кривой, но далее эта инфа кроме просмотра нигде и никому не нужна.
В таком случае в ActiveRecord::afterSave() обрабатываем $changedAttributes, строим сообщение лога и сохраняем в БД
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Yii2 и логирование измененных полей

Сообщение vitalik1183 »

ну впринципе так и задумывалось. Всем спасибо.
Yii2!
Ответить