Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在给定时间后自动编辑MySQL数据_Mysql_Laravel - Fatal编程技术网

在给定时间后自动编辑MySQL数据

在给定时间后自动编辑MySQL数据,mysql,laravel,Mysql,Laravel,我们有一个以草稿模式存储的表单。这意味着可以编辑任何数据或删除整个表单。从开始到结束的过程如下 当一个人第一次尝试提交表单时,该表单存储在草稿中。(isDraft列设置为0) 用户将被重定向到另一个页面,在那里他/她可以查看表单id(生成的编号)、名称、一些其他详细信息以及编辑/删除选项 用户可以单击“编辑”按钮编辑任何内容,甚至删除表单 但是,在给定日期之前(例如,从首次提交日期算起的15天),这是允许的。一旦该日期过去,就不能再编辑或删除该表单。如果表单未被删除,isDraft列设置

我们有一个以草稿模式存储的表单。这意味着可以编辑任何数据或删除整个表单。从开始到结束的过程如下

  • 当一个人第一次尝试提交表单时,该表单存储在草稿中。(isDraft列设置为0)

  • 用户将被重定向到另一个页面,在那里他/她可以查看表单id(生成的编号)、名称、一些其他详细信息以及编辑/删除选项

  • 用户可以单击“编辑”按钮编辑任何内容,甚至删除表单

  • 但是,在给定日期之前(例如,从首次提交日期算起的15天),这是允许的。一旦该日期过去,就不能再编辑或删除该表单。如果表单未被删除,isDraft列设置为1

成千上万的人可以提交表格。因此,手动操作是不可能的

我们的项目是使用LaravelV6.2完成的,但我也需要一个总体思路。

我可以在master页面上使用traitajax,但这太冒险了,而且服务器不可访问会延迟进程,一些用户可能会获得优势

怎么做


如果没有具体的答案,而只是讨论,我会删除这篇文章。我不确定我是否理解正确,但我想你喜欢在时间戳自动更新更新的_。您可以通过创建一个命令并对其调用save方法来运行雄辩的模型

$model->save()

将表单创建为草稿时,只需存储日期(时间组件取决于检查15天间隔时的准确度)


当用户想要编辑它(显示编辑表单)或保存编辑时,将当前日期(和时间)与存储的创建日期+15天进行比较。如果当前日期小于创建日期+15天,则允许显示编辑表单或保存表单,否则会显示错误消息。

laravel调度和服务器cron作业的组合可以轻松处理您手头的问题。我有一个在线作业门户,它利用了Laravel调度和Cpanel Cron作业,在每晚午夜删除所有过时的作业。以下是laravel调度的文档:@AhmadKarimi如果我要自动调用控制器操作怎么办?通过调度,您可以发出laravel命令来实际调用控制器函数来为您完成任务。@AhmadKarimi好的。请考虑把它作为我的参考答案。Asish,事实上,我建议这个方法,因为它不会使你的逻辑复杂化。只是为了增加@Shadow的建议,当用户试图更新帖子时,首先检查collumn isDraft是否设置为1,以防止用户编辑它。如果isDraft仍然为0,则检查日期是否超过15天,然后返回给用户一个通知,并立即将帖子的列isDraft更改为1。我甚至可以让方法控制器以这种方式处理,但我相信您可以处理它。@AhmadKarimi根本不需要isDraft列,创建日期+15天是相同的,根据描述。这样你的工作就容易多了。