如何删除 cookie 数组 Laravel 8 中的特定值

Posted

技术标签:

【中文标题】如何删除 cookie 数组 Laravel 8 中的特定值【英文标题】:How to delete a specific value in a cookie array Laravel 8 【发布时间】:2022-01-22 21:06:20 【问题描述】:

我正在尝试从名为“愿望清单”的 cookie 数组中删除一个特定值。我尝试使用Cookie::forget('wishlist');。我在控制器中使用了销毁方法。

问题是它删除了 整个 cookie 数组,而不仅仅是指定的值。

销毁()

    public function destroy($id)
    

        $books = Book::findOrFail($id);

        $cookie = Cookie::get('wishlist');
        $cookieArray = explode(',', json_decode($cookie));
        $flattenedArray = Arr::flatten($cookieArray);

        $arrayId = array_search($id, $flattenedArray);

        unset($flattenedArray[$arrayId]);

        $cookie = Cookie::forget('wishlist');


        return redirect()->route('wishlist.index', ['books' => $books])->withCookie($cookie);
    

【问题讨论】:

您可以设置一个新的空或空心愿单cookie,因此它也会将其删除。 我只想从 cookie 数组中删除一个特定的值。我想要在数组中没有指定值的相同 cookie 我想你只是用新值重新设置了 cookie 【参考方案1】:

Cookies 不接受数组,因此您必须将字符串存储在 cookie 中,并在每次使用时爆炸,并在任何更改后内爆以存储在 cookie 中 要解决您的问题,您必须搜索并找到您要查找的值的索引,然后使用 unset() 函数删除该索引。

【讨论】:

以上是关于如何删除 cookie 数组 Laravel 8 中的特定值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 8 中解密 cookie

如何在 laravel 5.4 中存储数组 cookie?

如何在 Laravel Lumen 8 中设置响应的 cookie

laravel的cookie操作

如何在laravel的数组列表中删除多余的数组

如何从 laravel 中的会话数组中删除项目