2016-04-15 25 views
0

私はLaravel 5.2を使用しています。
記事の閲覧時間を記録するにはどうすればよいですか?
stackoverflow.comの閲覧回数、
私はリフレッシュと同じように、時間は、それを行うにはどのよう
が変化しないのだろうか?
記事の閲覧時間を記録する方法は?

+0

ミドルウェアを使用します。セッションで何らかの変数が設定されているかどうか確認してください。そうでない場合は、変数を追加してビューとして数えます。 –

答えて

1

私は二つの列(article_idに、ビュー)を持つ新しいテーブルを作成することをお勧めdatabseを使用している場合:

CREATE TABLE `stats_articles` (
`article_id` INT NOT NULL, 
`views` INT DEFAULT 0 
)ENGINE=INNODB; 

のarticle_idは

あなたの記事のテーブルにidカラムにリンクする外部キーでなければなりません

次に、あなたの記事を表示する場所で、テーブルの値を増やすSQLを実行する必要があります:

INSERT INTO `stats_articles` SET views=1 WHERE article_id=[ARTICLE_ID] ON DUPLICATE KEY UPDATE views=views+1; 

このクエリは、stats_articlesviews=1という新しいレコードを挿入しようとしています。すでに存在する場合は、viewsの値が増えます。

現在、記事へのヒット件数をカウントするか、クッキーまたはセッション数で制限するかを決定する必要があります。

これを行うには、db値を増やす前に、ユーザーが既にこの記事を見ているかどうかを確認してください。この疑似コードのようなもの:

if (!cookie or seession for this [article_id] not exists) { // User see this article for a first time 
    increase db value 
} // if yes, do nothing 
関連する問題