【问题标题】:Laravel cache for every device每个设备的 Laravel 缓存
【发布时间】:2020-05-03 05:15:47
【问题描述】:

我正在尝试缓存用户添加到购物篮的产品名称,我想让它适用于匿名用户(适用于所有人)。我尝试了 laravel 缓存,但我不知道如何为缓存创建唯一键,我可以为该用户获取该唯一键并显示他们的产品。

        Cache::put('MyBasket',$arr);

我使用了该代码,但它会为每个访问网站的人显示相同的结果。我可以用他们的 id 为注册用户制作它,但我想为每个人(非注册用户)制作它。 也许我可以使用mac地址或类似的东西吗?

【问题讨论】:

  • 使用ip地址呢?
  • chrome 和 firefox 不会显示相同的结果吗?我的意思是浏览器
  • 是的,如果连接到同一个互联网

标签: php laravel caching local-storage


【解决方案1】:

使用session Id,laravel内部保持唯一性

Cache::put(session()->getId(),$arr);

【讨论】:

    【解决方案2】:

    您提到您的项目有产品。通常,对于基于电子商务的应用程序,缓存不会给您带来好的结果。您可以尝试将您的产品保存在会话或 cookie 中。如果您没有将用户产品保存在数据库中,会话存储将对您非常有帮助。尝试使用 Laravel 会话

    【讨论】:

    • Okey 我会试试的。但是 key 怎么样?如果我使用 IP,不同浏览器的结果会相同
    • 是的,IP 会给你同样的结果。但是每次路由器重启时IP都会改变。它不会给你更好的解决方案。
    • 要为用户生成密钥,您可以尝试 php 随机字符串生成,或者您可以使用 session_id
    • 如果我生成密钥如何知道该密钥。我也想为非用户做这件事
    • 如果您不使用 REST API 将数据保存在会话变量中并回调它以获取自己的产品。用户只能看到自己的产品,因为会话将存储在本地计算机中。如果您使用的是 Rest Api,您可以使用本地存储。它也会这样做。除了自己的产品,没有人可以看到任何其他数据
    猜你喜欢
    • 2023-02-15
    • 2012-03-28
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    相关资源
    最近更新 更多