我继续构建CakePHP应用程序。现在我已经在MySQL中创建了所有的数据库模式,运行了一些“蛋糕烘焙全部”,我有很多模型,视图和控制器,我会对它们进行个性化。
在我的许多模特中,我都有这个领域:
您可以理解,第一个字段是“行”所有者的ID,created_by是创建该行的id的id,并且是由更新它的最新人员修改的。
我知道我可以在模型中创建一个beforeSave过滤器并更新所有数据(我想我可以知道我是在创建还是更新一行,不是吗?),但刚才我有15个不同的模型,我希望应用程序会增长更多,因此需要编写大量重复的代码。并且,它打破了DRY原则。
我的问题是:有没有“优雅”的方法来解决这个问题?也许创建一个使用beforeSave过滤器扩展AppModel的类来更新字段,并且我的所有模型都继承自新的Model类而不是AppModel?
感谢您的帮助!
答案 0 :(得分:4)
将其设为行为并为需要该功能的模型加载它。
请参阅http://book.cakephp.org/2.0/en/models/behaviors.html#creating-behaviors
答案 1 :(得分:2)
我认为最合适的方法是创建行为。
您可以按照模型中的行为设置beforeSave回调。
以下是文档http://book.cakephp.org/2.0/en/models/behaviors.html#behavior-callbacks
的链接答案 2 :(得分:1)
你也可以检查dereuromark的WhoDidItBehavior。