2017-01-25 7 views
0

私は書店のプロジェクトに取り組んでいます、私はボタン付きの本のリストを持っています、それをクリックして、いくつかの名前でセッションの本のIDを保存する必要があります。しかし、私の問題は、セッション内でこのIDをたくさん保存して、後でforeach内でそれらのIDにアクセスできるようにすることです。Symfonyセッションで多くの値を同じ配列の中にたくさん保存するには?

/** 
* @Route("/cart/{bookId}", name="AppBundle_Book_addingToCartAction") 
*/ 
public function addingToCartAction(Request $request, int $bookId) 
{ 
    // getting session 
    $sessionCart = $request->getSession(); 

    // when user click on button Add to Cart , i send ID of book here(and others book IDs), 
    // so i need to save that ID inside a session(i was thinking making of some array 
    // with all this values), so how can I do this,i trying like this: 
    $sessionCart->set('BookIDs', array('Book'.$bookId => $bookId)); 

    return $this->render('AppBundle:Books:shopingCart.html.twig', array(
     'id' => $bookId, 
    )); 
} 
+0

私は実際には別のbookIdとbookIdを交換しています。 – dion

+0

つまり、BookIdsの配列が必要ですか?あれは正しいですか?そして、後でその配列を繰り返し処理したいと思うでしょう - これは正しい推測ですか?ただ問題を理解しようとしています... –

+0

ええ、私は解決策を得ましたが、答えをチェックすることを忘れてください。 – dion

答えて

1

最も簡単な解決方法はこれだと思います。

1)カートのセッションオブジェクトにキーを作成し、それをセッションの他のものから分離することができます。

2)他の配列と同じ方法でその内容を取得して設定します。

3)他に何か必要がない限り、bookIdをそこに保管してください。

/** 
* @Route("/cart/{bookId}", name="AppBundle_Book_addingToCartAction") 
*/ 
public function addingToCartAction(Request $request, int $bookId) 
{ 
    // getting session 
    $sessionCart = $request->getSession(); 

    $cart = $sessionCart->get('cart'); 

    $cart[] = $bookId; 

    $sessionCart->set('cart', $cart); 

    return $this->render('AppBundle:Books:shopingCart.html.twig', array('id' => $bookId)); 
} 
+0

セッション用のキー( 'カート') --- $ cart = $ sessionCart-> get( 'cart'); – dion

+0

初めてカートに何かを追加するときは、 – RiggsFolly

+0

okですが、これは便利です、ありがとうございます:) – dion

0

あなたはセッション変数から配列を取得する必要があります。この配列に新しい書籍IDを追加します。それ以外の場合は、この変数をオーバーライドします。

$arrayOfBook = $sessionCart->get('BookIDs'); 
if ($arrayOfBook == null){ 
    arrayOfBook = []; 
} 
arrayOfBook[] = $bookId; 
$sessionCart->set('BookIDs', arrayOfBook); 
+0

はい、これがありますが、セッションキーを作成する必要があります。そのアクション内にcreatできません。 – dion

+0

tnx、それは私を助けてくれる – dion

関連する問題