从 laravel 中的一个后缀获取所有会话
Posted
技术标签:
【中文标题】从 laravel 中的一个后缀获取所有会话【英文标题】:get all session from one suffix in laravel 【发布时间】:2020-03-25 18:16:25 【问题描述】:我想通过 laravel 创建一个商店网站。现在我想在我的网站中创建购物车页面。
我想为用户想要购买的每一种产品创建一个会话。
并在购物车页面中显示它们
来自产品的所有信息保存在一个数组中。然后我用这个数组值创建一个会话。
这样的数组和会话
$data = [
'product' => $request->input('product'),
'quantity' => 1,
'price' => $request->input('price')
];
$request->session()->put('cart_'. $request->input('product_id') , $data);
您可以看到我为用户选择的每个产品创建了一个会话,会话名称是购物车_(产品 ID)
现在我想在购物车页面中显示所有带有 (cart_) 后缀的会话。
但我不知道如何以不同的名称和一个后缀显示每个会话。
例如
用户想购买三种产品
我创建了三个不同名称但后缀的会话
我想显示用户在购物车页面中选择的所有产品
会议
$data = [
'product' => product test,
'quantity' => 1,
'price' => 300
];
$request->session()->put('cart_433' , $data);
// -------------------
$data = [
'product' => product test2,
'quantity' => 1,
'price' => 600
];
$request->session()->put('cart_10' , $data);
// -----------------------
$data = [
'product' => product test3,
'quantity' => 1,
'price' => 200
];
$request->session()->put('cart_54' , $data);
我想这样展示
<p>product test<p>
<p>300</p>
<hr>
<p>product test2<p>
<p>600</p>
<hr>
<p>product test3<p>
<p>200</p>
<hr><hr>
<p>1100</p>
【问题讨论】:
【参考方案1】:您可以将购物车的所有产品放在一个会话变量下。
了解 Session::put 和 Session::push 之间的区别。 Session::push 附加到现有数据,Session::put 删除现有数据和更新。
$data = array(
"product" => 1,
"quantity" => 1,
"price" => 1
);
Session::push('cart', $data); //inserting 1st item
$data = array(
"product" => 2,
"quantity" => 2,
"price" => 2
);
Session::push('cart', $data); //inserting 2nd item
$data= array(
"product" => 3,
"quantity" => 3,
"price" => 3
);
Session::push('cart', $data);//inserting 3rd item
然后你会得到 Session 的输出
//dd(Session::get('cart'));
array:3 [▼
0 => array:3 [▼
"product" => 1
"quantity" => 1
"price" => 1
]
1 => array:3 [▼
"product" => 2
"quantity" => 2
"price" => 2
]
2 => array:3 [▼
"product" => 3
"quantity" => 3
"price" => 3
]
]
然后您可以循环进入Session::get('cart')
并根据需要发布结果
仅供参考
foreach(Session::get('cart') as $item)
dump($item['product']);
dump($item['quantity']);
dump($item['price']);
【讨论】:
以上是关于从 laravel 中的一个后缀获取所有会话的主要内容,如果未能解决你的问题,请参考以下文章
当所有检索值在laravel中具有相同的会话键时,如何检查会话数组是不是具有唯一的ID
Laravel:如何访问 AppServiceProvider 中的会话值?