Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Quầy khách Laravel

Tôi không chắc chắn 100% về điều này, nhưng bạn sẽ có thể làm được điều gì đó như thế này. Nó không được thử nghiệm và có thể có một cách đơn giản hơn để làm điều đó, nhưng đó là một điểm khởi đầu cho bạn.

Thay đổi bảng

Thay đổi visit_date (datetime) cột thành visit_date (date)visit_time (time) , sau đó tạo một id để làm khóa chính. Cuối cùng, đặt ip + date là khóa duy nhất để đảm bảo bạn không thể nhập cùng một IP hai lần trong một ngày.

Tạo mô hình Hùng biện

Điều này rất dễ hiểu:tạo mô hình Eloquent cho bảng để bạn không phải sử dụng Fluent (trình tạo truy vấn) mọi lúc:

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();
    }

}

Bây giờ bạn có thể làm những gì bạn muốn chỉ bằng cách gọi sau:

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. Lỗi nghiêm trọng:Gọi đến hàm không xác định mysqli_connect () trong ... trong khi kết nối PHP 5.4.22 và MySQL 5.5 với Apache 2.4.7

  2. Liên kết động MySQL để tìm nạp đúng hàng

  3. máy chủ lưu trữ 'localhost' không được phép kết nối với máy chủ MySQL này (# 1130)

  4. phân vùng tự động cơ sở dữ liệu mysql

  5. Cách viết truy vấn tham gia trong API Volusion