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