Как убрать значение из сессии Laravel? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть код:

    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 голосов
/ 26 сентября 2018

Вы можете использовать пользователя

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

см. Документы

Сеанс laravel

0 голосов
/ 26 сентября 2018

Вы можете удалить один ключ из массива сессии следующим образом.

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

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

Сеанс laravel Удаление данных

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

0 голосов
/ 26 сентября 2018

Вы можете достичь этого,

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

Есть еще один способ,

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

Или вы можете сделать это,

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

Более подробную информацию вы можете получить по ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...