No estoy 100% seguro de esto, pero deberías poder hacer algo como esto. No está probado y puede haber una forma más elegante de hacerlo, pero es un punto de partida para ti.
Cambiar la mesa
Cambiar el visit_date (datetime)
columna en visit_date (date)
y visit_time (time)
columnas, luego crea un id
columna para que sea la clave principal. Por último, configure ip + date
ser una clave única para garantizar que no se pueda ingresar la misma IP dos veces durante un día.
Crear un modelo Elocuente
Esto es solo para simplificar:crea un modelo Eloquent para la tabla para que no tengas que usar Fluent (constructor de consultas) todo el tiempo:
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();
}
}
Ahora deberías poder hacer lo que quieras simplemente llamando a esto:
Tracker::hit();