【问题标题】:how to put and retrieve laravel collection object on Session如何在 Session 上放置和检索 laravel 集合对象
【发布时间】:2016-01-01 05:32:45
【问题描述】:

我知道我们可以在Session中插入数组Session::push('person.name','torres')但是如何保持laravel集合对象如$product = Product::all();Session::put('product',$product);一样。如何实现呢?

【问题讨论】:

    标签: laravel laravel-4 laravel-5


    【解决方案1】:

    您应该将其转换为普通数组,然后将它们转换回模型:

    存储在会话中

    $products = Product::all()->map(function ($product) {
        return $product->getAttributes();
    })->all();
    
    Session::put('products', $products);
    

    从会话中检索

    $products = Product::hydrate(Session::get('products'));
    

    您可以查看此方法的示例here

    【讨论】:

    • 为什么要转换成普通数组?
    • Session::put('products', $products->toArray()); 也为我工作。我使用Address::newModelInstance(Session::get('address')); 获取单个实例。
    【解决方案2】:

    您可以将任何数据放入会话中,包括对象。看到Collection 只是一个对象,你也可以这样做。

    例如:

    $products = Product::all();
    Session::put('products', $products);
    dd(Session::get('products'));
    

    应该回显集合。

    【讨论】:

      猜你喜欢
      • 2013-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      • 2022-01-18
      • 2012-02-13
      • 2021-07-17
      • 2022-07-18
      相关资源
      最近更新 更多