Ik ben hier niet 100% zeker van, maar je zou zoiets moeten kunnen doen. Het is niet getest en er is misschien een elegantere manier om het te doen, maar het is een startpunt voor jou.
Verander de tabel
Wijzig de visit_date (datetime)
kolom in visit_date (date)
en visit_time (time)
kolommen en maak vervolgens een id
kolom om de primaire sleutel te zijn. Stel ten slotte ip + date
in om een unieke sleutel te zijn om ervoor te zorgen dat hetzelfde IP-adres niet twee keer per dag kan worden ingevoerd.
Maak een welsprekend model
Dit is gewoon voor het gemak:maak een Eloquent-model voor de tafel, zodat je niet altijd Fluent (querybuilder) hoeft te gebruiken:
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 zou je moeten kunnen doen wat je wilt door dit gewoon te noemen:
Tracker::hit();