Уникальный ввод данных в сессию Laravel - PullRequest
0 голосов
/ 26 марта 2019

Чтобы создать корзину, я бы хотел добавить один и тот же товар только один раз в мою сессию Laravel. Я пробовал это условие в моем контроллере, но оно все еще не работает. Есть идеи?

Контроллер

$sessions = Session::get('items.item');
foreach ($sessions as $session) {
    if ($request->name == $session['name']) {
        return;
    } else {
        Session::push('items.item', [
            'name' => $request->name,
        ]);
    }
}

dd($sessions)

1 Ответ

3 голосов
/ 26 марта 2019

Ваш код немедленно добавит элемент, если первый найденный элемент не имеет того же имени. Вы должны проверить все элементы перед добавлением нового.

$sessions = Session::get('items.item');

$inItems = false;
foreach ($sessions as $session)
    if ($request->name == $session['name']) {
        $inItems = true;
        break;
    }
}

if (!$inItems) {
    Session::push('items.item',[
        'name' =>  $request->name,
    ]);
}
...