我有一个每分钟都会调用的Ajax请求,它会更新数据库中登录用户的上一次活动DateTime。我的问题是,它更新了多个用户,并且应该只更新一个已登录的用户。
当我使用链接调用该函数时,它运行良好(仅更新已登录的),但是当调用Ajax请求时,它将更新多个用户。
有些想法,怎么了?为什么这么做呢?
如果用户在线,则每分钟都会调用一次Ajax请求
function update_user_activity() {
$.ajax({
url: 'updateActivity',
method: 'post',
cache: false,
});
<?php
use App\Session;
if (Session::exist('id')) :
?>
setInterval(function () {
update_user_activity();
},60 * 1 * 1000);
<?php endif; ?>
}
更新上次活动日期时间的方法
public function updateActivity() {
if (!$this->authenticator->isLoggedIn()) {
$this->redirect('signin');
}
$params = [
'last_activity' => date("Y-m-d H:i:s", STRTOTIME(date('h:i:sa'))),
'id' => Session::get('details_id')
];
$this->userDetails->patch($params);
}
该会话仅在details_id
上,所以我也不明白为什么还要更新另一个用户。
谢谢。