Laravel,迁移关系在某个时候结束

Laravel,迁移关系在某个时候结束,laravel,database-migration,Laravel,Database Migration,嗨,我有以下问题。在拉雷维尔,我创建了两张桌子、两套公寓和两位赞助商,他们之间有着多对多的关系。根据所选择的计划,赞助商有一个可变的持续时间,我在透视表中对其进行了评估(开始时间和结束时间)。我需要公寓和赞助商之间的关系在赞助期结束后自动结束(当日期和日期与透视表的结束时间一致时)。我怎么能做这样的事?我曾考虑过使用分离,但我不确定如何分离。从不同的角度看待这些问题总是一个好主意。就像上面提到的两条评论一样,您可以在windows或linux系统中的cron作业中使用。 下一个选项是在透视图中创

嗨,我有以下问题。在拉雷维尔,我创建了两张桌子、两套公寓和两位赞助商,他们之间有着多对多的关系。根据所选择的计划,赞助商有一个可变的持续时间,我在透视表中对其进行了评估(开始时间和结束时间)。我需要公寓和赞助商之间的关系在赞助期结束后自动结束(当日期和日期与透视表的结束时间一致时)。我怎么能做这样的事?我曾考虑过使用
分离
,但我不确定如何分离。

从不同的角度看待这些问题总是一个好主意。就像上面提到的两条评论一样,您可以在windows或linux系统中的cron作业中使用。 下一个选项是在透视图中创建另一个类似“活动”的字段。这将是一个布尔值,并且将始终返回true或false。现在,您可以将任务调度与使用自定义artisan命令相结合,您可以继续检查发起人是否过期,如果确实过期,请将活动字段设置为false。 最重要的是,当您获得数据时,只需过滤查询即可。我不知道您的代码是什么样子的,但下面是pivot的示例代码,以及我将如何过滤它(未测试):


这只是一个简单的示例,说明了如何链接和查询关系,无论是透视表还是任何其他表,都可以在上面提到的类似范围内进行自定义查询。在您的情况下,应该可以使用类似的方法

您可以在关系中添加where语句,将关系保留在轴中,但使其无效?
//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