【问题标题】:Remove item from laravel cached array从 laravel 缓存数组中删除项目
【发布时间】:2019-05-02 12:57:29
【问题描述】:

我正在尝试创建一个删除特定输入字段缓存的函数。
我制作了一个 JQuery 函数,该函数执行一个 ajax 调用,当输入字段的值发生变化时,该调用执行 PHP 脚本。 PHP 脚本应该从这个特定的输入字段中删除缓存的项目。
缓存存储输入字段的旧数据,数组包含所有这些输入字段以及字段名称和值。
现在我可以检索整个数组,但我想从这个数组中检索一个特定的键并将其删除。我不确定如何从这个数组中检索特定的键。

这是现在只检索完整数组的函数:

public function emptySingleCache(){
    $name = $_GET['name'];
    $cache = Cache ::get('invoer');
}

我可以通过 $_GET[] 请求检索输入字段的名称

缓存仅包含输入字段的名称和值。

【问题讨论】:

    标签: jquery ajax laravel caching


    【解决方案1】:

    取决于您如何将数据保存在缓存中。如果您存储了一个数组,您可以像以前一样检索它,然后使用unset 忘记数组中的特定项目并再次存储它。

    如果您想使用您的密钥 invoer 从缓存中删除该项目,那么您可以使用

    Cache::forget('invoer');
    

    更多详情here

    【讨论】:

    • 我解决了这个问题,我提取了缓存,然后我通过完整的缓存进行了一次 foreach 并更改了特定名称的值。然后我把缓存放回去。我不确定这是否是正确的方法,但它确实有效。
    • 这听起来像是一个糟糕的操作性能明智。如果您存储一个值数组,那么您可以从缓存中获取该数组,并根据其键直接修改该数组的项。所以你不需要做foreach。
    • 这里是文档链接。 laravel.com/docs/5.7/cache#removing-items-from-the-cache .另外请确保您没有将项目永久存储在缓存中
    • @MartinterWee 如果有帮助,请考虑接受答案。
    猜你喜欢
    • 2014-02-10
    • 2023-01-09
    • 2010-10-16
    • 2021-10-19
    • 2021-10-03
    • 2020-11-21
    • 2010-10-17
    • 2016-12-10
    • 2014-09-21
    相关资源
    最近更新 更多