每天自动更新实体

时间:2017-07-05 13:10:57

标签: symfony datetime events doctrine entity

我正在使用Symfony 3创建我的作品集,我想用我的经验展示我的技能。

我有一个“技能”实体,其中包含“startAt”参数(type = datetime)和“exp”参数(字符串)。

“exp”参数=“startAt”与当前日期之间的差异。

我添加了一些生命周期回调,所以每当我触摸“技能”实体时,“exp”参数都会更新,但这是我的问题:

如何在不触及的情况下每天更新我的实体?

例如,现在我有“exp = 6个月”,但下个月这个参数需要“7个月”。

2 个答案:

答案 0 :(得分:1)

创建一个命令,用于更新您的实体并使用它创建一个cron选项卡

答案 1 :(得分:1)

由于“startAt”可能映射到名为“start_at”的数据库中的字段名称,因此该日期是您需要设置和存储的所有数据。映射到变量“exp”的实体中称为getExp()的方法将获取$ this-> startAt()值并计算该时间开始与当前时间之间的差异。您可以使用PHP DateTime对象来计算天,月或年的单位差异,具体取决于您的偏好。

此外,“exp”不需要是您需要存储或映射到数据库的字段,因为无论如何它都可以根据“startAt”日期值轻松计算。