rid*_*oth 2 php arrays cookies laravel laravel-5.4
我在 laravel 5.4 中有这个功能,但出现错误。
$cart[$product->id] = $quantity;
var_dump($cart);
return redirect('catalogs')->withCookie(cookie()->forever('cart', $cart));
Run Code Online (Sandbox Code Playgroud)
var_dump($cart) 包含这个:
array(1) { [1]=> string(1) "1" }
Run Code Online (Sandbox Code Playgroud)
错误警告:
Method Symfony\Component\HttpFoundation\Cookie::__toString() must not throw an exception, caught ErrorException: Array to string conversion
Run Code Online (Sandbox Code Playgroud)
如果我只传递字符串值(不是数组),它就成功了。如果有什么方法可以在 Laravel 中存储数组 cookie?
谢谢你。
警告:不要使用序列化/反序列化 http://php.net/manual/en/function.unserialize.php#refsect1-function.unserialize-notes
您可以将其存储为 JSON
$user=['name'=>'Imran','email'=>'xyz*emphasized text@gmail.com'];
$array_json=json_encode($user);
return redirect('user')->withCookie(cookie()->forever( 'user',$array_json, 450000));
Run Code Online (Sandbox Code Playgroud)
关于检索
$user=\Cookie::get('user');
$user=json_decode($user);
echo $user->name;
echo $user->email;
Run Code Online (Sandbox Code Playgroud)
cookie 中只能存储字符串。所以试试这个:
$cart[$product->id] = $quantity;
var_dump($cart);
return redirect('catalogs')->withCookie(cookie()->forever('cart', serialize($cart)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7587 次 |
| 最近记录: |