我目前正在使用cakephp制作电子商务网站。文章可以被激活或禁用(bool)。我为一篇文章设置了有效日期,如果过期,我想自动禁用这篇文章。
最好的方法是什么?使用SQL事件和触发器?或者我可以写一个事件函数在Cakephp和如何?
谢谢。
除非我遗漏了什么,否则您可以在控制器中为显示文章的操作执行此操作。
这是一个非常普通的未经测试的代码,只是为了说明这个想法。
应用程序/控制器/ArticlesController.php
public function view($id) {
// First get the requested article's validity date
$this->Article->id = $id;
$validity = $this->Article->field('validity_date');
// See if the date has expired
if ($validity < date('Y-m-d H:i:s')) {
throw new NotFoundException(); // Trigger 404 page
}
// Otherwise you're all good, so continue with showing the article...
}