私はこれについて100%確信していませんが、あなたはこのようなことをすることができるはずです。テストされておらず、よりエレガントな方法があるかもしれませんが、それはあなたにとっての出発点です。
テーブルを変更する
visit_date (datetime)
を変更します visit_date (date)
への列 およびvisit_time (time)
列、次にid
を作成します 主キーとなる列。最後に、ip + date
を設定します 同じIPを1日に2回入力できないようにするための一意のキーである必要があります。
Eloquentモデルを作成する
これは簡単にするためです。テーブルのEloquentモデルを作成して、Fluent(クエリビルダー)を常に使用する必要がないようにします。
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();
}
}
これで、次のように呼び出すだけで、やりたいことができるようになります。
Tracker::hit();