如何从会话Laravel中删除价值?

时间:2018-09-26 09:07:47

标签: php laravel session

我有代码:

    public function addToCompare(Request $request)
{
    $request->validate([
        'productId' => 'required|integer',
        'type' => 'required|string'
    ]);

    if ($request->type == 'add') {
        if(!session($request->productId)) 
        session(['productToCompareId' => $request->productId]);
        return response()->json(['success' => 'Product added to compare List!']);
    } else {
        session()->forget('productToCompareId');
        return response()->json(['success' => 'Product removed from compare List!']);
    }

    return response()->json(['error' => true]);
}

我只需要从比较列表中删除一种产品,但是我的代码中删除所有产品。我如何只能删除一种产品?

3 个答案:

答案 0 :(得分:0)

您可以做到这一点,

session(['productToCompareId' => '']);

还有另一种方法,

session()->forget('productToCompareId');
session()->flush();

或者您可以这样做

Session::pull('productToCompareId'); // reset current value

您可以从link中获取更多详细信息。

答案 1 :(得分:0)

您可以使用

$request->session()->forget('key');

请参阅文档

laravel Session

答案 2 :(得分:0)

您可以像这样从会话数组中删除单个键。

$request->session()->forget('key');

// or use global helper
session()->forget('key');

laravel Session Deleting data

https://laracasts.com/discuss/channels/laravel/remove-array-element-from-session?page=1