【问题标题】:Laravel 4.2 : keep multidimensional array data in sessionLaravel 4.2:在会话中保留多维数组数据
【发布时间】:2018-10-27 13:22:44
【问题描述】:

在我的 laravel 4.2 应用程序中,我想在会话中存储购物车项目的详细信息。

cartId =>[
            0 => [
                productId => x,
                quantity  => y
            ],
            1 => [
                productId => u,
                quantity  => v
            ],
            2 => [
                productId => l,
                quantity  => m
            ]

         ]

我没有找到除此之外的方法

Session::push('user.teams', 'developers');

用于在会话中存储为数组。 但这里不适用

【问题讨论】:

  • 试试:Session::put(<key>, json_encode($your_array));
  • 是的,Session::put($shoppingCartId, json_encode($array)); $test = Session::get($shoppingCartId); $test1 = json_decode($test); dd($test1[0]->productId);解决了很多

标签: php arrays laravel session laravel-4.2


【解决方案1】:

看起来你可以直接在会话中插入数组。

$someArray = ['name' => 'John Doe', 'username' => 'jdoe'];

Session::put('user', $someArray);

当你想检索它的值时只需要:

$user = Session::get('user');
echo $user['name'] // output: John Doe

同样适用于多维数组...

【讨论】:

    【解决方案2】:

    您可以只将信息存储在所需的密钥中,例如:

    $cartDetails = [ 
                     0 => [
                           productId => x,
                           quantity  => y
                     ],
                     1 => [
                           productId => u,
                           quantity  => v
                     ],
                     2 => [
                           productId => l,
                           quantity  => m
                     ]
                   ];
    
    Session::put('cart', $cartDetails);
    

    每个用户都有自己的购物车,您可以使用Session::has('cart') 进行验证,Session::get('cart') 将为您提供$cartDetails 的内容。

    Session::forget('cart') 将从会话中删除键“购物车”,这意味着 Session::has('cart') == false 并且 Session::get('cart') 为空

    如果您打算使用密钥作为 Id(Session::put($cartId, $cartDetails) 中的某些内容),如果您需要添加具有相同逻辑的内容,我不建议您稍后添加,您将破坏 Session 的密钥,并可能覆盖它。如果其他人查看代码(甚至您在不久的将来)并需要阅读代码,同样适用,除​​非您阅读整个函数,否则无法清楚地了解会话中的内容。 (海事组织)

    https://laravel.com/docs/4.2/session

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多