输入Laravel会话的唯一数据

时间:2019-03-26 14:43:22

标签: php laravel laravel-session

要创建购物车,我只想将同一产品添加一次到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 个答案:

答案 0 :(得分:3)

如果找到的第一个项目名称不相同,您的代码将立即添加该项目。您必须先检查所有项目,然后再添加新项目。

$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,
    ]);
}