我有一个登录表,ID为user_id(fk),日期为date。我如何显示users和每个用户在日期范围内的登录次数(作为另一列)?
这是我的索引函数。
public function index()
{
$this->paginate = [
'contain' => 'Users',
];
$query = $this->Logins->find('all')
->distinct('Logins.user_id')
->where([
'Logins.date >=' => '2021-07-25 00:00:00',
'Logins.date <=' => '2021-07-27 00:00:00',
]);
$this->set('logins', $this->paginate($query));
}
我如何通过获取日期范围的输入来实现相同的功能?以及如何显示每个用户在该日期范围内的登录次数?
1条答案
按热度按时间m528fe3b1#
你应该在users表中添加一列login_count。每次成功登录后,将其加一。或者,用一个日志表记录各种事件,其中可以是登录事件。这样你就不必猜测了。
然后使用查找两个日期之间的计数(假设Cake PHP 3.x或更高版本)。假设使用事件方法,您将查看给定日期期间的登录事件和用户id: