2015-10-22 2 views
0

В настоящее время я делаю сайт электронной коммерции с использованием cakephp. Статья может быть активирована или отключена (bool). Я установил дату действия статьи, и я бы хотел автоматически отключить статью, если устарел.Автоматическое обновление DB cakephp

Каков наилучший способ сделать это? С SQL-событием и триггером? Или я могу написать функцию события в Cakephp и как?

Спасибо.

+0

Да абсолютно. –

+0

Я не знаю, возможно ли это в php-функции. Я имею в виду, автоматически вызывать функцию, чтобы активировать значение 0, когда vality_date

+0

Лучше субъективно, почему бы вам просто не добавить «эта статья все еще актуальна?» проверьте, где вы его используете, и если он не обновляет запись. Или просто добавьте условие к тому, где вы найдете статьи, или запустите эту команду sql всякий раз, когда вам хочется (cron каждый день, час или минута) или т. Д. Вопрос слишком широк, потому что вы можете справиться с этим многими и многими способами. – AD7six

ответ

2

Если мне что-то не хватает, вы можете просто сделать это в контроллере для действия, которое отображает статью.

Это очень общий непроверенный код, чтобы показать эту идею.

приложение/Controller/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... 
} 
+0

Спасибо за идею, я попробую что-то подобное. Я отправлю его здесь, если это будет успешным! –