CakePHP - 行为/行为 - 关于创建自定义行为的建议

时间:2014-03-08 13:20:55

标签: cakephp model bdd behavior

我阅读了行为并认为它可能符合我的简单要求,但我不知道如何开始创建自定义行为。

方案: 我有一个名为公司表。此表与详细信息表 BusinessDescriptions 地址之间存在“hasMany”关系。当然,这些详细信息表通过外键链接到Companies表。

尽管存在“hasMany”关系,这些详细信息表中只有一条记录在任何特定日期都有效。因此,在详细信息表中,BusinessDescriptions和Addresses,I有字段“开始”和“ Enddate ”,告诉您记录有效的时间段。

使用示例:公司X将从2015年1月1日起获得新地址。因此,当插入新地址时,其旧地址记录(从Startdate 01.01.2014到Enddate 31.12.9999有效)需要将其Enddate更改为31.12.2014,以便为从2015年1月1日开始的新记录腾出空间。

现有记录的开始/结束日期的所有这些“自动分隔/调整”,我希望进行一种行为,但很难找到有关启动和运行自定义行为的教程。

任何人都可以向我指出如何开始,或者可能会向我展示为此创建行为的骨架结构吗?

1 个答案:

答案 0 :(得分:0)

我认为不需要对此进行行为。行为适用于需要在多个模型中使用逻辑的情况 - 在这种情况下,您似乎只需要在一个模型上使用它。

您可以在beforeFind()模型中使用Company回调。在它中,您可以附加您想要限制的日期的条件。

如果你真的想做出一个行为,你可以将beforeFind()放入一个,并在你希望所述模型根据当前日期限制时使用它等等。

另外,为什么不直接检索该公司的最新地址?按日期DESC排序,并限制1?