我尝试在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