laravel - 使用 Session 计算视图
问题描述
我是 laravel 的新手。我在这里找到了一种计算文章浏览量的方法,我自己使用了它,它应该可以正常工作
$viewed = Session::get('viewed_article', []);
if (!in_array($article->id, $viewed)) {
$article->increment('views');
Session::push('viewed_article', $article->id);
}
但是我唯一不完全理解的是它是如何工作的,它是做什么的,这让我感到有些不安。
谁不难,你能解释一下这个功能是如何工作的吗?
解决方案
第一行:
$viewed = Session::get('viewed_article', []);
使用Session
外观viewed_article
从会话中获取带有键的数据,或者如果该键不存在,则设置$viewed
为空数组(第二个参数设置默认值)。
下一行,if
声明:
if (!in_array($article->id, $viewed)) {
确保当前文章 ID 不在$viewed
数组中。
如果此条件为真(即文章不在数组中),则文章的浏览量增加(即增加一):
$article->increment('views');
最后,文章 id 被添加到viewed_article
session 数据中,所以下次代码运行时,它不会再次计算视图:
Session::push('viewed_article', $article->id);
推荐阅读
- android - android包名不可用的问题?
- node.js - 使用 npm mssql 添加标识列
- .htaccess - 如何从 URL (.htaccess) 中删除子目录的父目录
- spring - 在 bean 初始化期间使用响应式存储库 - 我需要阻止()吗?
- azure-cognitive-services - LUIS 容器“/luis/v2.0/apps/{appId}/versions/{versionId}”v2.0 端点返回“不支持的插槽名称”错误
- qt - Qt QSpinBox:如何显示大写十六进制数
- python-3.x - 在 Python 3.7 中格式化打印输出
- python - 有效地配对列表的随机元素
- php - phpseclib 2.0 的安装过程不起作用
- apache-kafka - kafka 如何知道是“前滚还是回滚”事务?