Laravel,迁移结束的时间

问题描述 投票:0回答:1

嗨,我有以下问题。在laravel中,我创建了2个桌子,公寓和赞助商,它们之间有许多关系。根据选择的计划,发起人有一个可变的持续时间,我在数据透视表中对其进行了计算(start_time和end_time)。我需要公寓和赞助商之间的关系在赞助期结束后(当日期和日期与数据透视表的end_time一致时)自动结束。我该怎么做?我曾考虑过使用detach,但不确定如何。

laravel database-migration
1个回答
0
投票

从不同的角度来看这些问题总是一个好主意。就像提到的两个注释一样,您可以在Windows或Linux系统的cron作业中使用Job Scheduling。下一个选择是在数据透视图中创建另一个字段,类似于“活动”。因此,这将是布尔值,并且将始终返回true或false。现在,您可以将任务调度与使用自定义artisan命令结合使用,可以继续检查发起人是否到期,如果发起人到期,则将active字段设置为false。最重要的是,当您获取数据时,只需过滤查询即可。我不知道您的代码是什么样子,但是这里是一个示例的示例代码以及如何过滤(未经测试):

//Here active null assumes it is false value. Active 1 assumes it is true. So the active field will be nullable
$myQuery = Sponsor::with([‘apartments’ => function($q) {
$q->where(‘active’, null)->get();
}])->get();
//The apartments is assumed to be the pivot relationship in your sponspor model

这只是一个简单的示例,说明如何链接和查询关系(无论是数据透视表还是任何其他表,都可以像上述那样在其中进行自定义查询。在您的情况下,应该采取一些措施]

© www.soinside.com 2019 - 2024. All rights reserved.