Pereiti prie turinio

Symfony2 krepselio atvaizdavimas


Rekomenduojami pranešimai

Sveiki. Taigi noriu atvaizduoti produktus kurie yra issaugoti mano krepselyje. Kai bandau atvaizduoti viena produkta, viskas veikai gerai. Bandant atvaizduoti du arba daugiau produktu jie dvigubinasi pvz.: Produkas1 Produktas2 Produktas1 Produktas2. Problema mazdaug zinau kur, bet nezinau kaip reiketu istaisyti ja.

 

Problema yra twige:

 

 {% if product is defined %}

             {% for key in cart %}

             {% for info in product %}


               <tr>

                 <td> <img width="60" src="" alt=""/></td>

                 <td>{{ info.model }}</td>
                 <td>
                   <div class="input-append"><input class="span1" style="max-width:34px" placeholder="1" id="appendedInputButtons" size="16" type="text">
                   <button class="btn" type="button"><i class="icon-minus"></i></button>
                   <button class="btn" type="button"><i class="icon-plus"></i></button>

                   <button class="btn btn-danger" type="button"><a href="{{ path('cart_remove', {'id': key}) }}"><i class="icon-remove icon-white"></i></button>

                   </div>
                 </td>

                 <td>{{ info.price }}</td>
                 <td>{{ info.discount }}</td>
                 <td>{{ info.value }}</td>


                 <td>{{ info.getFinal }}</td>


               </tr>
    {% endfor %}          

{% endfor %}

 

Istrynus

{{ for key in cart }}

produktai nebesidvigubina, taciau man sito loopo reikia, tam, kad galeciau produktus istrinti. Isemus kita loop is cart loopo irgi veikia, bet sitie loopai turi buti vienas po kito del template. Ka butu galima padaryti? O gal cia mano funkcijose kasnors blogai?

 

Cia controller produktui ikelti y cart:

 

public function viewAction($id)
   {

       // fetch the cart   
       $em = $this->getDoctrine()->getManager();
       $product = $em->getRepository('MpShopBundle:Product')->find($id);

       $session = $this->getRequest()->getSession();

       $cart = $session->get('cart', array());

       // check if the $id already exists in it.
       if (!$product) {

       return $this->redirect($this->generateUrl('cart'));
       }
       else {
       if( isset($cart[$id]) ) {

           $qtyAvailable = $product->getStock();

           //if( $qtyAvailable >= $cart[$id]) {
               $cart[$id] = $cart[$id]; 
           //} else {

             //  return $this->redirect($this->generateUrl('cart'));
          // }
       } else {
           // if it doesnt make it 1
           $cart = $session->get('cart', array());
           $cart[$id] = 1;
       }

       $session->set('cart', $cart);
       return $this->render('MpShopBundle:Frontend:product_details.html.twig',  array(
              'product'=>$product
       ));
   }

 

Cia controller atvaizdavimo:

 

public function summaryAction()
   {


           $session = $this->getRequest()->getSession();
           $cart = $session->get('cart', array());
           // fetch the information using query and ids in the cart
           if($session->has('cart') && count($session->get('cart')) > 0 ) {

            $em = $this->getDoctrine()->getEntityManager();
               foreach( $cart as $id => $quantity ) {
                         $productIds[] = $id;

               } 
           if( isset( $productIds ) )
               {
                   $em = $this->getDoctrine()->getEntityManager();
                   $product = $em->getRepository('MpShopBundle:Product')->findById( $productIds );
               } else {
                   return $this->render('MpShopBundle:Frontend:product_summary.html.twig', array(
                       'empty' => true,
                   ));
               }

              return $this->render('MpShopBundle:Frontend:product_summary.html.twig',     array(
           'product' => $product,
                   ));
               } else {
                   return $this->render('MpShopBundle:Frontend:product_summary.html.twig',     array(
                       'empty' => true,
                   ));
               }
           }

 

Help!!!

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gali tikrinti - jeigu ištrini produktus, tada {% for key in cart %} veikia kaip ir turi, kitu atveju ciklas vyksta tik vieną kartą. Tai aišku labai bjauru...

 

„cart“ ir „product“ visada turi tą patį reikšmę? Jeigu taip – tada kam reikalingas šitas dubliavimas?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...