من یه جدول ساختم به اسم Visits با فیلدهای id و vdate و counter که id و counter از نوع int و vdate از نوع (char(10 هست. مدل رو هم براش ساختم و با چنین کدی با کمک JDF توی کنترلر والد، بازدیدها رو ثبت میکنم:
$jdf = Yii::app()->jdf;
$today = $jdf->trNum($jdf->date('Y/m/d'));
if($todayHits = Visits::model()->find('vdate=:vdate', array(':vdate' => $today))) {
$todayHits->saveCounters(array('counter' => 1));
}
else {
$todayHits = new Visits;
$todayHits->vdate = $today;
$todayHits->counter = 1;
$todayHits->save();
}
برای خوندنش هم میتونید از چنین کدی استفاده کنید:
$jdf = Yii::app()->jdf;
$today = $jdf->trNum($jdf->date('Y/m/d'));
$todayVisits = Visits::model()->find('vdate=:vdate', array(':vdate' => $today))->counter;
$totalVisits = Visits::model()->find('SUM(counter) AS total')->total;
نکته 1 : از کامپوننت JDF که روش ساختش رو
اینجا توضیح دادم استفاده کردم.
نکته 2 : برای استفاده از totalVisits باید یه فیلد public به اسم total$ به مدل Visits اضافه کنید.
نکته 3 : میتونید درصورت نیاز، چیزهای دیگه مثل مرورگر مورداستفاده و... رو هم از User Agent استخراج کنید و توی دیتابیس برای بدست آوردن آمار دقیقتر ثبت کنید.