我继续构建我的CakePHP应用程序。现在我已经在MySQL中创建了所有数据库模式,运行了一些“蛋糕烘焙全部”,我有很多模型、视图和控制器,我将对它们进行个性化设置。
在我的许多模型中,我有以下字段:
如您所知,第一个字段是“行”所有者的id,创建者是创建行的id,并由更新行的最新人员修改。
我知道我可以在模型中创建一个beForeSave过滤器并更新所有数据(我想我可以知道我是否在创建或更新一行,不是吗?),但现在我有15个不同的模型,我希望应用程序会增长更多,所以要写很多重复的代码。而且,它打破了干燥原则。
我的问题是:有没有“优雅”的方法来解决这个问题?也许创建一个扩展AppModel的类,使用beforeSave过滤器来更新字段,并且我的所有模型都从新模型类而不是AppModel继承?
谢谢你的帮助!
让它成为一种行为,并为需要该功能的模型加载它。
看见http://book.cakephp.org/2.0/en/models/behaviors.html#creating-行为
我认为最合适的方法是创造行为。
您可以按照模型中的行为设置beforeSave回调。
这里是文档的链接http://book.cakephp.org/2.0/en/models/behaviors.html#behavior-回调
您还可以检查dereuromark的WhoDidItBehavior作为示例。