新闻,博客,商城系统中常见一些模型的阅读数,点击数增加方法

2020-02-24 13:53:50 +08:00
 DavidNineRoc

新闻,博客,商城系统中常见一些模型的阅读数,点击数增加。 这里我们举例用 views_count 字段表示我们要增加的字段

public function show($id)
{
	Model::where('id', $id)->increment('views_count', 1);
	
	// 视图渲染
}
public function show($id)
{
	Redis::increment("model_views:{$id}", 1);
	
	// 视图渲染
}

// 定时任务处理
public function handle()
{
	$keys = Redis::keys('model_views:*');
	foreach ($keys as $key) {
	
		list(, $id) = explode(':', $key);
		$count = Redis::get($key);
		Model::where('id', $id)->increment('views_count', $count);
		Redis::del($key);
	}
}
public function show($id)
{
	$key = "model_views:{$id}";
	$count = Redis::increment($key, 1);
	
	$max = 100;
	if ($count > 100) {
	
		Model::where('id', $id)->increment('views_count', $count);
		Redis::del($key);
	}
	
	// 视图渲染
}

Model::getAttribute('views_count', function (Model $model) {

	return $model->views_count + (int)Redis::get("model_views:{$model->id}");
});

556 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/647082

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX