[英]Laravel Store Array in Session
我在會話中存儲數組時遇到問題。 我正在制作購物車,但它似乎不起作用。
public function __construct(){
$product = array(1,2,3,4);
Session::push('cart', $product);
}
然后像這樣在視圖中檢索它。
{{Session::get('cart')}}
但是我不斷收到這樣的錯誤。
htmlentities() expects parameter 1 to be string, array given
有關如何創建存儲一系列項目的購物車的任何線索和建議。
如果您需要將 session 中的數組用作字符串,則需要像這樣使用 Collection:
$product = collect([1,2,3,4]);
Session::push('cart', $product);
當您在 html 中使用{{Session::get('cart');}}
,這將使它起作用。 請注意Session::push
因為它會在會話中始終附加新產品。 您應該使用Session::put
以確保產品將始終更新。
您正在會話中存儲一個數組,並且由於{{ }}
需要一個字符串,因此您不能使用{{Session::get('cart')}}
來顯示該值。
{{ $var }}
與編寫echo htmlentities($var)
(一個非常簡單的例子)。
相反,您可以執行以下操作:
@foreach (Session::get('cart') as $product_id)
{{$product_id}}
@endforeach
如果使用“push”,在會話中最初創建數組時,數組將如下所示:
[
0 => [1,2,3,4]
]
相反,您應該使用“放置”:
$products = [1,2,3,4];
$request->session()->put('cart', $products);
任何后續值都應推送到會話數組中:
$request->session()->push('cart', 5);
您可以使用.
:
$product = array(1,2,3,4);
Session::put('cart.product',$product);
您可以在會話中聲明一個數組,如$cart = session('data', []);
$cart[] = $product;
session([ 'data' => $cart]);
return session('data', []);
你也可以這樣做:
$data = collect($Array);
Session()->put('data', $data);
return view('pagename');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.