Я работаю над проектом CakePHP 3.2 .
У меня есть Property
.
когда пользователь создает свойство , администратор должен подтвердить его, чтобы он стал активным . После этого я помещал в поле с именем date_of_expiration
текущую дату + 10 дней, например …
Я хочу, чтобы это свойство истекало в эту дату (текущая дата + 10 дней). Изменяя поле, называемое status
от активного до неактивного .
Я искал в Google, и я обнаружил, что то, что я не называл Sheduled Task ..
Я спрашиваю о лучшем способе сделать это в CakePHP 3.2
Вы можете настроить задание cron, которое вызовет функцию в вашем контроллере. Затем ваша функция будет выбирать все записи из вашей таблицы properties
, проверять, date_of_expiration
ли date_of_expiration
действия date_of_expiration
а затем установить status
в inactive
.
Вы должны разрешить вызов метода без того, чтобы вы вошли в систему и, возможно, отключили компонент CSRF (если вы его используете):
public function beforeFilter(Event $event){ $this->Auth->allow('cronjob_expiration_date'); if(in_array($this->request->action, ['cronjob_expiration_date'])) { $this->eventManager()->off($this->Csrf); } }
Это необходимо, потому что «пользователь» cron не входит в систему.