Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
инвентаризация:dev:model:history [2024/02/26 04:23] admin [Как добавить историю модели] |
инвентаризация:dev:model:history [2025/05/15 12:26] (текущий) admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | {{tag> | + | {{tag> |
====== Инвентаризация: | ====== Инвентаризация: | ||
Как нам вести историю изменения моделей. | Как нам вести историю изменения моделей. | ||
Строка 20: | Строка 20: | ||
* функцию журналирования состояния с возможностью указания инициатора изменений | * функцию журналирования состояния с возможностью указания инициатора изменений | ||
+ | Для возможности отображения загруженного из журнала объекта через те же формы, журнальный объект должен мимикрировать под оригинал. Для этого целесообразно все вычисляемые параметры вынести в Trait и подключить трейты и к оригиналу и к журналу | ||
++++ | ++++ | ||
Строка 32: | Строка 33: | ||
====== Как добавить историю модели ====== | ====== Как добавить историю модели ====== | ||
- | ==== Таблицы ==== | + | ===== Таблицы |
В самой модели должны быть поля | В самой модели должны быть поля | ||
* updated_at (timestamp()) - время обновления модели | * updated_at (timestamp()) - время обновления модели | ||
Строка 77: | Строка 78: | ||
</ | </ | ||
- | ==== Модели ==== | + | ===== Модели |
- | === Исходная === | + | ==== Исходная |
Должна наследоваться от ArmsModel, тогда в процессе afterSave будет проверяться наличие класса истории, | Должна наследоваться от ArmsModel, тогда в процессе afterSave будет проверяться наличие класса истории, | ||
- | == Атрибуты Ссылки == | + | === Атрибуты Ссылки |
надо, чтобы в оригинальной модели были доступны атрибуты с ID объектов с many-2-many и one-2-many обратными ссылками. Если это many-2-many ссылки, | надо, чтобы в оригинальной модели были доступны атрибуты с ID объектов с many-2-many и one-2-many обратными ссылками. Если это many-2-many ссылки, | ||
<code php> | <code php> | ||
Строка 103: | Строка 104: | ||
</ | </ | ||
- | == Атрибут Name == | + | === Атрибут Name === |
Должен быть, если ссылки на этот объект есть в истории других объектов | Должен быть, если ссылки на этот объект есть в истории других объектов | ||
сойдет даже вычисляемый getName() | сойдет даже вычисляемый getName() |