sql >> Databáze >  >> RDS >> Mysql

Počítadlo návštěvníků Laravel

Nejsem si tím 100% jistý, ale měli byste být schopni něco takového udělat. Není to testováno a možná existuje elegantnější způsob, jak to udělat, ale je to pro vás výchozí bod.

Změňte tabulku

Změňte visit_date (datetime) do visit_date (date) a visit_time (time) sloupce a poté vytvořte id jako primární klíč. Nakonec nastavte ip + date být jedinečným klíčem, který zajistí, že nebudete moci zadat stejnou IP adresu dvakrát na jeden den.

Vytvořte výmluvný model

To je jen pro usnadnění:vytvořte si model Eloquent pro stůl, abyste nemuseli neustále používat Fluent (tvorbu dotazů):

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

}

Nyní byste měli být schopni dělat, co chcete, pouhým zavoláním:

Tracker::hit();


  1. Rychlejší načítání velkých dat

  2. Jak změnit formát data v databázi Oracle

  3. Použití CONTINUE v smyčkách k obnovení řízení v Oracle

  4. Zřetězení řetězce a ID primárního klíče při vkládání