Mysql
 sql >> база данни >  >> RDS >> Mysql

Брояч на посетителите на Laravel

Не съм 100% сигурен в това, но трябва да можете да направите нещо подобно. Не е тестван и може да има по-елегантен начин да го направите, но това е отправна точка за вас.

Променете таблицата

Променете visit_date (datetime) колона в visit_date (date) и visit_time (time) колони, след което създайте id колона да бъде първичен ключ. И накрая, задайте ip + date да бъде уникален ключ, който да гарантира, че не можете да въвеждате един и същ IP адрес два пъти за един ден.

Създайте 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();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Може ли таблица на база данни да бъде без първичен ключ?

  2. PHP :Използване на променлива за задържане на име на таблица и използване на тази променлива в заявки

  3. Мога ли да получа уникален TIMESTAMP за всеки запис в MySQL

  4. mysql изберете група сума по дата

  5. Как да активирам mysql разширенията на php в контейнера за докер?