Non ne sono sicuro al 100%, ma dovresti essere in grado di fare qualcosa del genere. Non è stato testato e potrebbe esserci un modo più elegante per farlo, ma è un punto di partenza per te.
Cambia la tabella
Modifica il visit_date (datetime)
colonna in visit_date (date)
e visit_time (time)
colonne, quindi crea un id
colonna come chiave primaria. Infine, imposta ip + date
essere una chiave univoca per garantire che non sia possibile inserire lo stesso IP due volte per un giorno.
Crea un modello eloquente
Questo è solo per comodità:crea un modello Eloquent per la tabella in modo da non dover usare sempre Fluent (query builder):
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();
}
}
Ora dovresti essere in grado di fare quello che vuoi semplicemente chiamando questo:
Tracker::hit();