首页 > 解决方案 > Laravel 会话的唯一数据输入

问题描述

为了创建一个购物车,我只想在我的 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($会话)

标签: phplaravellaravel-session

解决方案


如果它找到的第一个项目没有相同的名称,您的代码将立即添加该项目。在添加新项目之前,您必须检查所有项目。

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

推荐阅读