Я использую cakephp 2.9 и пытаюсь записать в базу данных каждое последнее взаимодействие пользователя с моим веб-приложением, которое является полем даты и времени «последняя активность» в таблице пользователей.
Для этого я решил написать код внутри AppController’s beforeRender. Итак, мой код таков:
Function beforeRender()
{
$this->loadModel('User');
$this->User->id=(int)$this->Session-
>read('Users.UserData.User.id');
$this->User->savefield('lastactivity', date('Y-m-d H:i:s'));
}
Функция запускается для каждого запроса, как и ожидалось, но вместо обновления значения последней активности зарегистрированного пользователя поле сохранения создает новые строки в пользовательской таблице.
Мне кажется, все в порядке, я сбросил значение идентификатора пользователя, и все в порядке, я перечитал этот код сотни раз. Мое единственное предположение, что я упускаю что-то из базовой функциональности, если перед Render ... Я не знаю.
Кто-нибудь может мне помочь?
$this->User->id
? - person Greg Schmidt   schedule 27.08.2019$this->User->id
после того, как вы его установили, чтобы быть абсолютно уверенным, что это то, что вы ожидаете. Такого рода ошибки очень часто вызваны такими вещами, как, например, опечатки в пути сеанса, который вы читаете. - person Greg Schmidt   schedule 27.08.2019