मैं इस पर 100% निश्चित नहीं हूं, लेकिन आपको ऐसा कुछ करने में सक्षम होना चाहिए। इसका परीक्षण नहीं किया गया है, और इसे करने का एक और शानदार तरीका हो सकता है, लेकिन यह आपके लिए एक प्रारंभिक बिंदु है।
तालिका बदलें
visit_date (datetime)
बदलें कॉलम में visit_date (date)
और visit_time (time)
कॉलम, फिर एक id
बनाएं कॉलम प्राथमिक कुंजी होने के लिए। अंत में, ip + date
set सेट करें यह सुनिश्चित करने के लिए एक अद्वितीय कुंजी होने के लिए कि आप एक ही IP को एक दिन में दो बार दर्ज नहीं कर सकते।
एक सुवक्ता मॉडल बनाएं
यह केवल आसान है:तालिका के लिए एक सुवक्ता मॉडल बनाएं ताकि आपको हर समय फ़्लुएंट (क्वेरी बिल्डर) का उपयोग न करना पड़े:
class Tracker extends Eloquent {
public $attributes = [ 'hits' => 0 ];
protected $fillable = [ 'ip', 'date' ];
protected $table = 'table_name';
public static function boot() {
// Any time the instance is updated (but not created)
static::saving( function ($tracker) {
$tracker->visit_time = date('H:i:s');
$tracker->hits++;
} );
}
public static function hit() {
static::firstOrCreate([
'ip' => $_SERVER['REMOTE_ADDR'],
'date' => date('Y-m-d'),
])->save();
}
}
अब आप बस इसे कॉल करके वह कर पाएंगे जो आप चाहते हैं:
Tracker::hit();