在特定时间更改数据库字段

时间:2017-05-27 00:18:44

标签: php mysql laravel-5

我正在开发一个laravel API,想要在注册一个月后激活用户(免费试用),然后在月底停用它们。激活将通过MySQL db中的users表中的活动列。因此,对于要激活的用户:active = 1,否则active = 0。

在注册方法中,我这样做:$user->active = 1;

现在,我怎么能让它成为:一个月后自动激活= 0

3 个答案:

答案 0 :(得分:2)

我也会选择工匠指令。您可能需要考虑时区差异等。可选地,您可以通过在用户尝试登录时运行逻辑来节省处理时间。这样你就懒得加载逻辑并在必要时执行,而不是每天运行一次,反复通过所有用户等等。

答案 1 :(得分:1)

您应该在服务器中添加一个cron作业。这个cron作业每天运行一次,检索注册后一个月的用户并停用它们。

对于linux服务器:

您应该运行命令:

crontab -e

并为例子添加此文本:

0 0 * * * php /path/to/your/script.php 

每天00h00运行脚本

答案 2 :(得分:1)

为此你必须创建每天运行的crone。在这个crone中,你必须编写脚本,该脚本将获得所有月份用户的用户并将其状态更新为0。

让我知道您是否有任何疑问!