如何管理Laravel 5中的活动

时间:2017-03-27 12:43:08

标签: laravel session events listener provider

我正在尝试使用Laravel管理会话/活动,但我不确定是否理解。

我有一个存储在我的数据库中的过期日期的对象。当当前时间等于到期日时,我想改变他的状态。我是否必须使用侦听器/事件或会话变量或其他东西?

我的购物车存在同样的问题。我想在闲置15分钟后清空推车(我正在使用Crinsane Cart)。

有什么想法吗?

此致

杰里米

2 个答案:

答案 0 :(得分:0)

您可以为此创建scheduled task。检查所有过期的记录并更新状态:

Model::where('status', 0)
     ->where('expiration_date', '<', Carbon::now())
     ->update(['status' => 1]);

然后添加任务。例如,如果您想每分钟运行一次此任务:

$schedule->command(status:update)->everyMinute();

答案 1 :(得分:0)

这听起来像一个问题,可以通过使用Laravel本身的Task Scheduling来轻松处理。

您需要两份工作:

  • 第一个需要每天触发(我假设)并运行查询以选择实验日期到期的所有对象。 (请参阅Alexey对查询的回答)

  • 第二个需要检查购物车是否处于非活动状态超过15分钟,如果是这样则将其删除:

Cart::where('updated_at, '<', Carbon::now()->subMinutes(15))->delete();