Я использую Propel 1.6, и мне нужно создать версию всех таблиц в конкретной базе данных. У меня есть несколько таблиц, каждая из которых имеет таблицу версий, определенную в схеме (поэтому таблица 'role' имеет таблицу 'role_versionable' в качестве аналога управления версиями). При сохранении записи в 'role' я хотел бы скопировать существующую запись в role_versionable перед сохранением.
Это само по себе тривиально: я установил baseClass для всей схемы на собственный класс (который расширяет BaseObject), и все мои сгенерированные классы модели строк расширяют этот класс. В моей пользовательской процедуре сохранения я делаю новый выбор, а затем сохраняю его в таблицу версий. Однако я должен иметь возможность перехватывать doSelect [One] во всех классах строк, но я не хочу генерировать дочерние объекты для каждой таблицы в модели.
Поэтому мне интересно, есть ли способ, которым я могу подключиться к postSelect или автоматически вызываться после каждого doSelect, чтобы получить начальное состояние объекта после его выбора? Это тогда спасет меня от лишнего выбора, когда я приду к версии строки.
(Подробно: я делаю это нестандартным способом, так как мне нужно добавить дополнительные метаданные в таблицу версий, которые, как мне кажется, не поддерживает archive_behaviour.)