php - 最近在 laravel 7 中通过 cookie 浏览的产品一次只能保存 1 个产品
问题描述
我已经尝试了我在这里找到的脚本[Laravel/PHP] 如何制作“最近查看的帖子”小部件
它似乎有效,但只在 cookie 中保存了一个产品,而不是 5 个。
下面是我目前在我的productController
$num_to_store = 5;
$minutes_to_store = 1;
$current_page['id'] = $product_material->id;
$current_page['title'] = $material_category->title.' '.$product_material->title;
$current_page['url'] = $request->url();
$recent = Cookie::get('recently_viewed');
$recent = json_decode($recent, true);
if($recent){
foreach ($recent as $key => $val){
if($val['url'] == $current_page['url']){
unset($recent[$key]);
}
}
}
$recent[ time() ] = $current_page;
if(sizeof($recent) > $num_to_store){
$recent = array_slice($recent, sizeof($recent)-5, sizeof($recent), true);
}
Cookie::queue('recently_viewed_content', json_encode($recent), $minutes_to_store);
$recently_viewed_content = json_decode(Cookie::get('recently_viewed_content'), TRUE)
这是我在刀片文件中的代码:
@if($recently_viewed_content)
@php(krsort( $recently_viewed_content ))
@foreach($recently_viewed_content as $rvc)
{{ $rvc['title'] }}
{{ $rvc['url'] }}
@endforeach
@endif
不确定它有什么问题。
我也尝试从这里实现类似的逻辑Ecommerce 最近查看的产品
但这对我也不起作用。
任何帮助都会得到帮助
解决方案
解决了。
这是一个简单的错字Cookie::get('recently_viewed');
。应该是Cookie::get('recently_viewed_content');
推荐阅读
- java - 为什么即使 Metaspace 未填满,JVM 也会因“java.lang.OutOfMemoryError: Metaspace”而崩溃?
- r - 如何在 R 表的标题中写上标?
- javascript - 如何在 Angular 中生成口语列表?
- sql - SQL 顶部 [参数]
- python - 如何向量化这个简单的 NumPy 函数?
- node.js - 如何解决此错误:找不到模块“ibm-watson”
- shell - 如何测试 conda 环境是否存在并与 shell 中 yml 环境文件的内容匹配
- go - 如何在同一张桌子上混合 Has One 关系和 Has Many 关系
- asp.net - IIS 应用程序池;域管理员密码已更改,现在在事件查看器中看到错误
- amazon-web-services - CloudFormation - IAM - 带标签的访问控制