0

最初にセッションを追加し、次にセッションを印刷します。ここでは完全に問題ないように見えます。

Array
(
[14] => Array//(main key is my restaurant Id)
    (
        [retaurantDetail] => Array
            (
                [restId] => 14
                [restaurantName] => Barca
                [published] => 1
                [timings] => 10 to 10
                [normalCost] => 150
                [logo] => 44f7afcffb0aeea5c69ccee9041cab84.jpg
                [email] => barca@barca.com
                [phone] => 741258
            )

        [menuArray] => Array
            (
                [70] => Array // (menu ID is the Key)
                    (
                        [menuId] => 70
                        [productId] => 35
                        [productName] => Coca Cola
                        [categoryTitle] => Beverages
                        [categoryId] => 52
                        [price] => 100
                        [attributeName] => 1.5L
                        [isDefault] => 1
                        [qty] => 1
                    )

            )

    )
)

誰かがカートに追加するメニューをもう一度追加する場合は、ロジックを追加します。つまり、そのメニューにプラス1の数量を追加します。これが私のコードです(コードはまだ完成していませんが、数量を更新することに集中しています。 )。

            foreach($session->cartSession as $sessionKey=>$sessionVal)
            {

                        foreach($sessionVal['menuArray'] as $sessionMenuKey=>$sessionMenuVal)
                        {

                            if($sessionMenuKey == $post_data['menuId'])
                            {
                                echo"<pre>"; print_r($sessionMenuVal['qty']); echo "</pre>";
                                //$qty = $session->cartSession[$restaurantDetail['restId']]['menuArray'][$sessionMenuKey];
                                $sessionMenuVal['qty'] =  $sessionMenuVal['qty']+1;

                                echo"<pre>"; print_r($sessionMenuVal['qty']); echo "</pre>"; 

                            }

                         }
            }

足りないものセッション数を更新したい。

addを押すたびに、1個の数量が表示されます。プラス1個の数量を追加すると、2個の数量が表示され、その後、再び1個の数量が表示されます:(。

4

1 に答える 1

2

セッションに書き戻すことはありません...

私があなたのコードを正しく理解していれば、以下はうまくいくはずです。箱から出してすぐに機能しない場合に備えて、正しい配列-コードのネストを確認してください。

// Somewhere on top, use this for your loops
$cartSession = $session->offsetGet('cartSession'); 

// Inside your matched loop
$currentQty = $sessionMenuVal['qty'];
$cartSession[$sessionKey][$sessionMenuKey]['qty'] = ++$currentQty;

// After your loops at the end
$session->offsetSet('cartSession', $cartSession);
于 2013-01-25T12:47:34.463 に答える