在我的laravel 4.2应用程序中,我想在会话中存储购物车项目的详细信息。
cartId =>[
0 => [
productId => x,
quantity => y
],
1 => [
productId => u,
quantity => v
],
2 => [
productId => l,
quantity => m
]
]
我没有找到除此之外的方法
Session::push('user.teams', 'developers');
用于在会话中存储为数组。 但这同样不适用
答案 0 :(得分:1)
您只需将信息存储在所需的密钥中,例如:
$cartDetails = [
0 => [
productId => x,
quantity => y
],
1 => [
productId => u,
quantity => v
],
2 => [
productId => l,
quantity => m
]
];
Session::put('cart', $cartDetails);
每位用户都拥有自己的购物车,您可以使用Session::has('cart')
验证,Session::get('cart')
可以获得$cartDetails
的内容。
Session::forget('cart')
将从会话中删除关键“购物车”,这意味着Session::has('cart')
== false且Session::get('cart')
为空
如果您计划将密钥用作Id(在Session :: put($ cartId,$ cartDetails)行中的某些东西),我不建议稍后,如果您需要添加具有相同逻辑的东西,你会破坏Session的密钥,并可能覆盖它。同样适用于其他人看一下代码(或者甚至是你在不久的将来)并且需要阅读代码,除非你阅读整个函数,否则会话中没有明确的看法。 (IMO)
答案 1 :(得分:0)
看起来您可以直接在会话中插入数组。
$someArray = ['name' => 'John Doe', 'username' => 'jdoe'];
Session::put('user', $someArray);
当您想要检索其值时,只需:
$user = Session::get('user');
echo $user['name'] // output: John Doe
同样适用于多维数组...