2017-07-02 91 views
0

我在laravel 5.4中有這個函數,但是我得到錯誤。如何在laravel 5.4中存儲數組cookie?

$cart[$product->id] = $quantity; 
var_dump($cart); 
return redirect('catalogs')->withCookie(cookie()->forever('cart', $cart)); 

的var_dump($車)包含此:

array(1) { [1]=> string(1) "1" } 

錯誤警告:

Method Symfony\Component\HttpFoundation\Cookie::__toString() must not throw an exception, caught ErrorException: Array to string conversion 

如果我剛剛獲得通過的字符串值(不是數組),它的成功。如果有任何方法在Laravel中存儲數組cookie?

謝謝。

+1

你試過序列化數組嗎? – Andreas

+0

是的,序列化($ cart)就是答案。雖然我希望Laravel框架可以處理cookie中的數組存儲。 –

回答

1

只能將字符串存儲在cookie中。所以試試這個:

$cart[$product->id] = $quantity; 
var_dump($cart); 
return redirect('catalogs')->withCookie(cookie()->forever('cart', serialize($cart))); 
+0

好主意。感謝您的解釋,即只有字符串可以存儲在cookie中,即使使用Laravel框架。謝謝。 –