как передать статус неактивный yii2

149
28 сентября 2017, 15:30

всем привет задам терзающий меня вопрос, есть таблица human с строкой data_okon (с датой окончания) и строкой status, после как пройдет дата окончания мне надо присвоить значение в строку status неактивный, но если время еще не вышло, или при добавлении новых людей их статус должен быть активным, и все это должно происходить без моего вмешательство

Answer 1

Немного расширю ответ от Bookin. Пишете консольную команду (http://www.yiiframework.com/doc-2.0/guide-tutorial-console.html), которая будет проверять дату окончания и менять статус. Скажем она будет вызываться так:

./yii check/expiry-date

Для этого нужно добавить класс:

namespace app\commands;
use yii\console\Controller;
use app\models\Human;
class СheckController extends Controller
{
    public function optionExpiryDate()
    {
        $expiredHumans = Human::find()->where('data_okon <= NOW()')->all();
        foreach($expiredHumans as $human) {
            $human->status = Human::NOT_ACTIVE;
            $human->save();
        }
    }
}

Затем нужно регулярно вызывать эту команду. На Linux можно использовать cron. Для этого выполнить:

crontab -e

И добавить строку для выполнения команды раз в минуту:

*/1 * * * * cd /var/www/site; ./yii check/expiry-date

После этого cron будет раз в минуту выполнять вашу команду

READ ALSO
BudgetOrderService getBillingAccounts вовзвращает null

BudgetOrderService getBillingAccounts вовзвращает null

Все здравствуйте! Помогите пожалуйста разобраться почему получаю null

147
Инжект в процесс dwm.exe

Инжект в процесс dwm.exe

Я бы хотел реализовать один быстрый способ получения скриншотовНеоднократно встречал упоминания такого метода

279
Динамический массив списком блоков

Динамический массив списком блоков

Возникла проблема в реализации динамического массива списком блоков

321
Глобальная переменная для dll

Глобальная переменная для dll

Как объявить глобальную переменную в основной программе чтобы затем,в dll получить к ней доступ?

231