Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

लारवेल विज़िटर काउंटर

मैं इस पर 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();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL:बाइनरी और ब्लॉब के बीच अंतर

  2. पिछले 24 घंटों में दिनांक फ़ील्ड के साथ रिकॉर्ड खोजें

  3. xampp MySQL प्रारंभ नहीं होता है

  4. MySQL:BEGIN&COMMIT के साथ एक ही क्वेरी में एकाधिक तालिकाओं में सम्मिलित करें

  5. मैं PHP में पीडीओ के माध्यम से एक MySQL क्वेरी के माध्यम से कैसे लूप करूं?