支付购物车 - Laravel不同的对象

时间:2017-02-15 14:19:53

标签: laravel

我尝试在laravel中添加不同的objets到我的购物车视图,但是当我尝试向视图添加不同的对象时,我得到一个例外。我想知道是否有人知道实现这一目标的良好做法。

这是我的类获取项目类型编号1:

<?php

namespace App;

class CartCotisationStructure
{
    public $items = null ;
    public $totalQty = 0 ;
    public $totalPrice = 0 ;



    public function __construct($oldCart)

    {
        if ($oldCart){

            $this->items = $oldCart->items;
            $this->totalQty = $oldCart->totalQty;
            $this->totalPrice = $oldCart->totalPrice;

        }
    }

    public function  add($item , $id){
        $storedItem = ['qty' => 0 , 'montant' => $item->montant , 'item' => $item];

        if($this->items){
            if(array_key_exists($id , $this->items)){
                $storedItem = $this->items[$id];
            }
        }
        $storedItem['qty']++;
        $storedItem['price'] = $item->montant * $storedItem['qty'];
        $this->items[$id] = $storedItem;
        $this->totalQty++;
        $this->totalPrice += $item->montant;

    }

}

这里是我的项目类型二:

<?php

namespace App;


class CartLicenceStructure
{
    public $items = null ;
    public $totalQty = 0 ;
    public $totalPrice = 0 ;



    public function __construct($oldCart)

    {
        if ($oldCart){

            $this->items = $oldCart->items;
            $this->totalQty = $oldCart->totalQty;
            $this->totalPrice = $oldCart->totalPrice;

        }
    }

    public function  add($item , $id){
        $storedItem = ['qty' => 0 , 'mt_cotisation' => $item->activite_licencie->mt_cotisation , 'item' => $item];

        if($this->items){
            if(array_key_exists($id , $this->items)){
                $storedItem = $this->items[$id];
            }
        }
        $storedItem['qty']++;
        $storedItem['price'] = $item->activite_licencie->mt_cotisation * $storedItem['qty'];
        $this->items[$id] = $storedItem;
        $this->totalQty++;
        $this->totalPrice += $item->activite_licencie->mt_cotisation;

    }


}

这是我的LicenceStructure控制器:

 public function getAddToCart(Request $request , $id){


        $licencie = LicencieStructure::find($id);

        $oldCart = Session::has('CartLicenceStructure') ? Session::get('CartLicenceStructure') : null ;
        $cart = new CartLicenceStructure($oldCart);

        $cart->add($licencie , $licencie->id);

        $request->session()->put('CartLicenceStructure' , $cart);

        return redirect()->route('home')->with('status', 'Le licencié à bien été ajouté au panier');;
    }


    public function getCart()
    {
        if(!Session::has('CartLicenceStructure')){

            return view('shop.panier');
        }
        $oldCart = Session::get('CartLicenceStructure');
        $cart = new CartLicenceStructure($oldCart);
        return view('shop.panier' , ['licencies' => $cart->items , 'totalPrice' => $cart->totalPrice]);

    }

这里是我的Cotisations控制器

    public function getAddToCartCotisation(Request $request , $id){


        $cotisation = CotisationStructure::find($id);

        $oldCart = Session::has('CartLicenceStructure') ? Session::get('CartCotisationStructure') : null ;
        $cart = new CartCotisationStructure($oldCart);

        $cart->add($cotisation , $cotisation->id);

        $request->session()->put('CartCotisationStructure' , $cart);

        return redirect()->route('home')->with('status', 'La cotisation à bien été ajouté au panier');;
    }


    public function getCartCotisation()
    {
        if(!Session::has('CartCotisationStructure')){

            return view('shop.panier');
        }
        $oldCart = Session::get('CartCotisationStructure');
        $cart = new CartCotisationStructure($oldCart);

        return view('shop.panier' , ['cotisations' => $cart->items , 'totalPrice' => $cart->totalPrice]);

    }

在这里我的观点(当我想添加两个不同的项目时,他们会例外,#34;未定义的变量&#34;许可证&#34;)

 @if(Session::has('CartLicenceStructure'))

                        @foreach($licencies as $licencie)
// display the items 
                        @endforeach

@elseif(Session::has('CartCotisationStructure')

 @foreach($cotisations as $cotisation)

// display the items 
                        @endforeach

0 个答案:

没有答案