sql >> Database teknologi >  >> RDS >> Mysql

Laravel besøgstæller

Jeg er ikke 100% sikker på dette, men du burde være i stand til at gøre sådan noget. Det er ikke testet, og der er muligvis en mere elegant måde at gøre det på, men det er et udgangspunkt for dig.

Skift tabellen

Skift visit_date (datetime) kolonne til visit_date (date) og visit_time (time) kolonner, og opret derefter et id kolonne til at være den primære nøgle. Til sidst skal du indstille ip + date at være en unik nøgle for at sikre, at du ikke kan få den samme IP indtastet to gange i én dag.

Opret en veltalende model

Dette er kun for nemheds skyld:lav en veltalende model til bordet, så du ikke behøver at bruge Fluent (forespørgselsbygger) hele tiden:

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();
    }

}

Nu skulle du være i stand til at gøre, hvad du vil, ved blot at kalde dette:

Tracker::hit();


  1. Hurtigste måde at liste alle databaser i SQL Server ved hjælp af T-SQL

  2. Hvordan får man adgang til mysqli-forbindelse i en anden klasse på en anden side?

  3. Hvordan CONCAT()-funktionen fungerer i PostgreSQL

  4. Sådan viser du alle datoer mellem to datoer