【发布时间】: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
我知道我们可以在Session中插入数组Session::push('person.name','torres')但是如何保持laravel集合对象如$product = Product::all();和Session::put('product',$product);一样。如何实现呢?
【问题讨论】:
标签: laravel laravel-4 laravel-5
您应该将其转换为普通数组,然后将它们转换回模型:
$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')); 获取单个实例。
您可以将任何数据放入会话中,包括对象。看到Collection 只是一个对象,你也可以这样做。
例如:
$products = Product::all();
Session::put('products', $products);
dd(Session::get('products'));
应该回显集合。
【讨论】: