在保存到不同型号之前分配字段值

时间:2013-11-10 22:28:56

标签: cakephp cakephp-2.3

我继续构建CakePHP应用程序。现在我已经在MySQL中创建了所有的数据库模式,运行了一些“蛋糕烘焙全部”,我有很多模型,视图和控制器,我会对它们进行个性化。

在我的许多模特中,我都有这个领域:

  • COMPANY_ID
  • CREATED_BY
  • modified_by

您可以理解,第一个字段是“行”所有者的ID,created_by是创建该行的id的id,并且是由更新它的最新人员修改的。

我知道我可以在模型中创建一个beforeSave过滤器并更新所有数据(我想我可以知道我是在创建还是更新一行,不是吗?),但刚才我有15个不同的模型,我希望应用程序会增长更多,因此需要编写大量重复的代码。并且,它打破了DRY原则。

我的问题是:有没有“优雅”的方法来解决这个问题?也许创建一个使用beforeSave过滤器扩展AppModel的类来更新字段,并且我的所有模型都继承自新的Model类而不是AppModel?

感谢您的帮助!

3 个答案:

答案 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