gpt4 book ai didi

php - 在 symfony2 中为购物车更新 session

转载 作者:搜寻专家 更新时间:2023-10-31 21:30:06 26 4
gpt4 key购买 nike

我有以下代码:

public function addAction(Request $request){
//Get submited data
// Get Value from session
$sessionVal = $this->get('session')->get('aBasket');
// Append value to retrieved array.
$aBasket = $request->request->all();
if(count($sessionVal) > 0) {
foreach ($sessionVal as $key=>$value) {
if($aBasket['product_id'] == $sessionVal[$key]['product_id'])
{
$sessionVal[$key]['product_quantity'] = $sessionVal[$key]['product_quantity'] + $aBasket['product_quantity'];
$this->get('session')->set('aBasket', $sessionVal);
}
else
{
$sessionVal[] = $aBasket;
$this->get('session')->set('aBasket', $sessionVal);
}
}
}
else
{
$sessionVal[] = $aBasket;
$this->get('session')->set('aBasket', $sessionVal);
}
// Set value back to session
return $this->redirect($this->generateUrl('shop_desktop_homepage'));
}

想法是增加现有产品的数量,如果 id 不对应则添加它们。现在添加的数量正确,但是产品也添加了。有解决办法吗??请帮助我...

最佳答案

你可以简化你的代码,我想你的 session 数组看起来像

array(
'11' =>array('id'=>'11','title'=>'some product','product_quantity'=>2),
'12' =>array('id'=>'12','title'=>'some product','product_quantity'=>1),
'13' =>array('id'=>'13','title'=>'some product','product_quantity'=>3),
);

您的购物车数组中的键将是产品 ID,因此现在在下面的代码中数组中不会有重复的产品我已经删除了 foreach 循环,而不是我只使用了一个 if check if(isset($sessionVal[$aBasket['product_id']])) 产品是否已经存在于购物车数组中,将产品 ID 替换为键,例如 if(isset($sessionVal['11' ]))如果存在则将数量加一,如果不存在则将产品插入购物车数组

public function addAction( Request $request ) {
$sessionVal = $this->get( 'session' )->get( 'aBasket' );
$aBasket = $request->request->all();
if(isset($sessionVal[$aBasket['product_id']])){
$sessionVal[$aBasket['product_id']]['product_quantity'] += 1;
}else{
$sessionVal[$aBasket['product_id']]= array(
'id'=>$aBasket['product_id'],
'product_quantity' => 1,
'other_info' => '...'
);
}
$this->get( 'session' )->set( 'aBasket', $sessionVal );
return $this->redirect( $this->generateUrl( 'shop_desktop_homepage' ) );
}

关于php - 在 symfony2 中为购物车更新 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30863993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com