@hollanditkzn

Как сделать напоминание?

Я хочу реализовать напоминание на сайте. Но сделать так что она записывалась в таблицу уведомлений. Вот примерно не пойму как сделать так чтобы напоминание сохранялись и вводились как уведомление.
Напоминание сохраняются в том случае, если срок действии истек, то сохраняется как уведомление, что заказ просрочен.
Пробовал через action, Но не получилось и куда примерно надо код писать
public function actionReminder($id)
    {
        $model = $this->findModel($id)
        $reminder = new Notification();
        if ($model->srok<date('Y-m-d')) {
             $reminder->id_user = 1;
             $reminder->name = 'Срок пропущен в №'.$model->id_zakaz;
             $reminder->id_zakaz = $model->id_zakaz;
             $reminder->category = 4;
             $reminder->active = true;
             $reminder->save();
         } 
    }

Или это надо как-то при создание заказа добавлять сроки в уведомлений? Но потом не понятно как их разделять обычные уведомление с просроченным сроком?
  • Вопрос задан
  • 307 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Есть пользователь, с ним связан заказ, выбираете все заказы пользователя у которых дата создания между текущая дата и старая дата (например текущая дата минус месяц)
Если таковые есть, выводите сообщение. Что бы базу не нагружать особо, можно делать просто count() и выводить сообщение "у Вас n заказов не оплачено" с ссылкой на страницу со всеми заказами. Так же я бы на день закешировал этот запрос и дергал эту цифру из кеша. Если ноль - не показываем сообщение. При переходе по ссылке на заказы, пишем в кеш ноль. что бы больше не показывались.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mitaichik
@mitaichik
Посмотрите вот на эту строку : вы, скорее всего, сравниваете строки, а не даты.
$model->srok<date('Y-m-d')
Так же вы не проверяете $reminder->save() - он может не сохраниться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы