我正在使用Propel 1.6並需要對特定數據庫中的所有表進行版本化。我有許多表,每個表都有一個在模式中定義的可版本化的表(所以表'角色'有一個'role_versionable'作爲其版本對應表)。在'角色'中保存記錄時,我想在保存之前將現有記錄複製到role_versionable。我已經將整個模式的baseClass設置爲一個自定義類(它擴展了BaseObject),並且我所生成的所有行模型類都擴展了這個類。在我的自定義保存例程中,我正在執行全新的選擇,然後將其保存到可版本化的表中。不過,我應該能夠攔截所有行類中的doSelect [One],但我不想爲模型中的每個表生成子對象。在doSelect中捕獲Propel對象的初始副本
因此,我想知道是否有一種方法,我可以鉤入postSelect或在每個doSelect後自動調用,以便在選擇對象後獲取對象的初始狀態?這將爲我節省額外的選擇,當我來版本行。
(詳細信息:我這樣做在一個自定義的方式,因爲我需要額外的元數據添加到版本表,我不相信archive_behaviour支持)
一種方法,我可以採取的是生成每個我的同行的子類(該系統是一個數據庫應用程序,這樣我就必須這樣做編程方式代表用戶的,但是那是相當的實現) 。這會讓我有機會接觸到每個doSelect,但是它感覺有點不雅。那麼......有什麼想法? :-) – halfer
說StackOverflow:「這個問題有一個值得+50聲望的賞金......你有23個小時獎勵賞金」。呸;因爲我收到的答案正好是零,所以我想知道我是否會因爲我超人的耐心而獎勵給自己? :) – halfer
我可能會在Propel郵件列表中彈出此消息。但是,在我的第一條評論中採用這種方法並不是很大的努力 - 生成子類。不是最優雅的方法,但肯定會奏效。 – halfer