【发布时间】:2014-07-07 11:43:54
【问题描述】:
以下函数通过将横幅表中的状态字段设置为 0 来检查横幅是否足够老以使其处于非活动状态。
/** * * 检查天气横幅是否足够老,可以转回非高级 * 并将状态更改为 0 ,以防非高级 * * @return 无效 */
protected function check_status(){
$non_premium_expire = 5*24*60*60;
$premium_expire = 14*24*60*60;
$data = $this->Banner->find('all');
foreach ($data as $Banners) {
if ($Banners['Banner']['is_premium'] == 0) {
if ((time() - strtotime($Banners['Banner']['created'])) > $premium_expire) {
$this->Banner->id = $Banners['Banner']['id'];
$this->Banner->saveField('status',0);
}
else if ($Banners['Banner']['is_premium'] == 1) {
if ((time() - strtotime($Banners['Banner']['created'])) > $non_) {
$this->Banner->id = $Banners['Banner']['id'];
$this->Banner->saveField('status',0);
}
}
}
}
}
来自 mybanners() 函数。即用户打开时应调用 check_status() 函数 /站点名称/我的横幅
我已经从下面显示的 mybanners() 函数中调用了 check_status() 函数
public function mybanners()
{
$this->check_status();
$this->layout = 'index';
$this->loadModel('Banner');
$loggedUserId = $this->Auth->user('id');
我的问题是,即使尝试了 set() 和 updateAll() 函数,数据库中的一个字段状态也没有得到更新。有什么解决办法吗?我是 cakephp 的新手
【问题讨论】:
标签: database save cakephp-2.0