提问者:小点点

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


我试图从cookie数组中删除一个名为“wishlist”的特定值。我尝试使用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);
    }


共1个答案

匿名用户

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