【问题标题】:get all session from one suffix in laravel从 laravel 中的一个后缀获取所有会话
【发布时间】:2020-03-25 18:16:25
【问题描述】:

我想通过 laravel 创建一个商店网站。现在我想在我的网站中创建购物车页面。

我想为用户想要购买的每一种产品创建一个会话。

并在购物车页面中显示它们

来自产品的所有信息保存在一个数组中。然后我用这个数组值创建一个会话。

这样的数组和会话

        $data = [
        'product' => $request->input('product'),
        'quantity' => 1,
        'price' => $request->input('price')
        ];

        $request->session()->put('cart_'. $request->input('product_id') , $data);

您可以看到我为用户选择的每个产品创建了一个会话,会话名​​称是购物车_(产品 ID)

现在我想在购物车页面中显示所有带有 (cart_) 后缀的会话。

但我不知道如何以不同的名称和一个后缀显示每个会话。

例如

用户想购买三种产品

我创建了三个不同名称但后缀的会话

我想显示用户在购物车页面中选择的所有产品

会议



        $data = [
        'product' => product test,
        'quantity' => 1,
        'price' => 300
        ];

        $request->session()->put('cart_433' , $data);

// -------------------

        $data = [
        'product' => product test2,
        'quantity' => 1,
        'price' => 600
        ];

        $request->session()->put('cart_10' , $data);
// -----------------------

        $data = [
        'product' => product test3,
        'quantity' => 1,
        'price' => 200
        ];

        $request->session()->put('cart_54' , $data);

我想这样展示

<p>product test<p>
<p>300</p>
<hr>

<p>product test2<p>
<p>600</p>
<hr>

<p>product test3<p>
<p>200</p>

<hr><hr>
<p>1100</p>

【问题讨论】:

    标签: php arrays laravel session


    【解决方案1】:

    您可以将购物车的所有产品放在一个会话变量下。

    了解 Session::putSession::push 之间的区别。 Session::push 附加到现有数据,Session::put 删除现有数据和更新。

    $data = array(
            "product" => 1,
            "quantity" => 1,
            "price" => 1
            );
    
    Session::push('cart', $data); //inserting 1st item
    
    $data = array(
       "product" => 2,
       "quantity" => 2,
       "price" => 2
       );
    
    Session::push('cart', $data); //inserting 2nd item
    
    $data= array(
        "product" => 3,
        "quantity" => 3,
        "price" => 3
        );
    
    Session::push('cart', $data);//inserting 3rd item
    

    然后你会得到 Session 的输出

    //dd(Session::get('cart'));
    array:3 [▼
      0 => array:3 [▼
        "product" => 1
        "quantity" => 1
        "price" => 1
      ]
     1 => array:3 [▼
       "product" => 2
       "quantity" => 2
       "price" => 2
     ]
     2 => array:3 [▼
       "product" => 3
       "quantity" => 3
       "price" => 3
     ]
    ] 
    

    然后您可以循环进入Session::get('cart') 并根据需要发布结果

    仅供参考

    foreach(Session::get('cart') as $item)
    {
        dump($item['product']);
        dump($item['quantity']);
        dump($item['price']);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-22
      • 2017-09-21
      • 1970-01-01
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 2014-02-10
      相关资源
      最近更新 更多