Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 11.04.2016 17:26:25

Max_G
Откуда: Одесса, Украина
Сообщений: 55

Контроль изменений

Не знаю, как называется сие, поэтому и проблемы с поиском.
Нужно смастерить систему контроля изменений контента, как в вики или близко к этому по сути.
Чтобы не просто были поля created_at и updated_at, а была возможность видеть каждое изменение и его автора.
Если скажете, как называется, вы уже поможете.
Какие, может быть, существуют менее сложные системы по сравнению с вики?
Какие варианты реализации? Т.е. хранить не сами версии, а, как в гите, изменения?

Не в сети

#2 11.04.2016 17:34:32

Re: Контроль изменений

Один из вариантов:
табличка change_log  например

CREATE TABLE `change_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date_created` int(11) DEFAULT NULL,
  `owner_id` int(11) DEFAULT NULL,
  `event_type` smallint(6) DEFAULT NULL,
  `ref_table` varchar(255) DEFAULT NULL,
  `ref_id` int(11) DEFAULT NULL,
  `changes` text,
  `client_ip` varchar(15) DEFAULT NULL,
  PRIMARY KEY (`id`)
)

В модели указываешь какие атрибуты отслеживать, при сохранении проходишься по изменненым, если их надо отслеживать -  пишешь change_log
дату, модель или таблица в которой произошло изменение, id записи, изменения в виде json [[поле, старое значение, новое значение],[поле2, старое значение2, новое значение2]],  тип события (вставка/изменение/удаление), IP и тд, все что надо

Не в сети

Подвал раздела