كيفيه زياده سله المشتريات عند الضغظ الزر

ammar • منذ 8 سنوات

اعمل على موقع مثل سوق.كوم المشكله عندما اضغط على add to cart  ماتزداد سله المشتريات استخدم مشlaravel 5. 3

طبعا انا اتابع  الدورة في اليويتوب لكن ماعرف وش الغلط https://www.youtube.com/watch?v=L_5BZKe0Ab4&list=PL55RiY5tL51qUXDyBqx0mKVOhLNFwwxvH&index=10

the Product Controll


public function getAddToCart(Request $request, $id)
{
  $product  =Product::find($id);
  $oldcart = Session::has('cart') ? Session::get('cart') : null;
  $cart = new Cart($oldcart);
  $cart->add($product , $product->id);

  $request->session()->put('cart',$cart);
// TO show it  dd($request->Session()->get('cart'));
  return redirect()->route('product.index');
}

and the model Cart :


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

public function __consruct($oldCart){
  if($oldCart){
    $this->$items = $oldCart->items;
    $this->$totalQty  = $oldCart->totalQty;
    $this ->$totalPrice = $oldCart->totalPrice;
  }

}
   public function add($item,$id){
    $storedItem = ['qty' => 0,'price' => $item->price,'item' => $item];
    if ($this->items)
    {
      if(arrary_Key_exists($id,$this->items))
      {
        $storedItem = $this->items[$id];
      }
    }
      $storedItem['qty']++;
      $storedItem['price'] = $item->price * $storedItem['qty'];
      $this->items[$id] = $storedItem;
      $this->totalQty++;
      $this->totalPrice += $item->price;

  }

  }

And this is a Product page:


<a href="#"> <i class="fa fa-shopping-cart" aria-hidden="true"></i> Shopping Cart
        <span class="badge">{{ Session::has('cart') ? Session::get('cart')->totalQty : '' }}</span>
      </a>

 

كلمات دليلية:

ساعد بالإجابة

"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."

الإجابات (6)

منصور العتيبي • منذ 8 سنوات

على العموم المشكله والله اعلم انها في النسخه الجديده

 

جرب تستخدم session كـ method

يعني كذا


$request->session()->has

مثل ماهو موضح في Documentation

https://laravel.com/docs/5.3/session

ammar • منذ 8 سنوات

ماقد تعاملت مع githup

بس رفعته هنا كمان لمن حاولت احفظ الاشياء عشان اعرضها في shopping-cart يطلع  Undefined variable: products

shopping-cart.zip

Ali Majrashi • منذ 8 سنوات

shopping-cart.png

بالنسبة لعدد المشتريات في السلة شغال معي بدون مااعدل على اكوادك شي 

 

بالنسبة للخطا الثاني عندك الكثير من الأخطاء الإملائية في الميثود getCart وبعد لما تستخدم new Cart يحذف كل المنتجات المخزنة فلازم تراج الأكواد داخل هالكلاس وتتاكد انه شغال تمام عدلتها لكذا 


public function getCart()
{
      if(!Session::has('cart'))
      {
        return view('shop.shopping-cart');
      }

      $oldcart = Session::get('cart');

      return view('shop.shopping-cart')->with([
        'products' => $oldcart->items,
        'totalPrice' => $oldcart->totalPrice
      ]);
}

وبعد عدلت على View الي يعرض السلة shop.shopping-cart الى


@extends('layouts.master')

@section('title')

Shopping Cart !!

@endsection

@section('content')
    @if(Session::has('cart'))
        @foreach($products as $product)
        {{ $product['qty'] }}
        <br>
        {{ $product['item']->title }}
        <br>
        {{ $product['price'] }}
        <br>
        {{ $totalPrice }}
        @endforeach
	@else
		<h2> NO!! </h2>
	@endif

@endsection

وفيه عندك مشكلة لازم تتاكد منها حاليا الاضافة للسلة مايضيف غير منتج واحد فقط بالسلة لازم تراجع الاكواد وتتاكد انه يضيف كل المنتجات بدون مشاكل تاكد من كتباة الأكواد بشكل صحيح وباذن الله تنحل كل مشاكلك 

ammar • منذ 8 سنوات

ايوة مشكلتي بالضبط انو مايضيف غير منتج واحد فقط لكن عنده كل ماتضغط يضيف  حتى في كلاس الي قبلو كان كاتب new cart

Ali Majrashi • منذ 8 سنوات
19 دقائق مضت, ammar said:

ايوة مشكلتي بالضبط انو مايضيف غير منتج واحد فقط لكن عنده كل ماتضغط يضيف  حتى في كلاس الي قبلو كان كاتب new cart

قلت لك عندك اخطاء املائية كثير وهذا سبب كل المشاكل 

مثلا داخل كلاس Cart كتبت __construct خطأ وبعد داخل هذا الميثود كنت تحاول توصل للمتغيرات بشكل خطأ عدلتها لك كذا 


public function __construct($oldCart){
  if($oldCart){
    $this->items = $oldCart->items;
    $this->totalQty  = $oldCart->totalQty;
    $this ->totalPrice = $oldCart->totalPrice;
  }
}

وبعد عندك داخل الميثود add كتب اسم الدالة array_Key_exists بشكل خطأ وعدلتها لك كذا 


public function add($item,$id){
  $storedItem = ['qty' => 0,'price' => $item->price,'item' => $item];
  if ($this->items)
  {
  	if(array_Key_exists($id,$this->items))
  	{
  		$storedItem = $this->items[$id];
  	}
  }
  $storedItem['qty']++;
  $storedItem['price'] = $item->price * $storedItem['qty'];
  $this->items[$id] = $storedItem;
  $this->totalQty++;
  $this->totalPrice += $item->price;
}

 

وعندك بعد خطأ داخل ميثود getAddToCart تبع الكنترولر ProductController عدلت على 


$oldcart = Session::has('cart') ? Session::all('cart') : null;

الى


$oldcart = Session::has('cart') ? Session::get('cart') : null;

 

واشتغل معي تمام في الاضافة وغيره 

ammar • منذ 8 سنوات
26 دقائق مضت, Ali Majrashi said:

قلت لك عندك اخطاء املائية كثير وهذا سبب كل المشاكل 

مثلا داخل كلاس Cart كتبت __construct خطأ وبعد داخل هذا الميثود كنت تحاول توصل للمتغيرات بشكل خطأ عدلتها لك كذا 



public function __construct($oldCart){
  if($oldCart){
    $this->items = $oldCart->items;
    $this->totalQty  = $oldCart->totalQty;
    $this ->totalPrice = $oldCart->totalPrice;
  }
}

وبعد عندك داخل الميثود add كتب اسم الدالة array_Key_exists بشكل خطأ وعدلتها لك كذا 



public function add($item,$id){
  $storedItem = ['qty' => 0,'price' => $item->price,'item' => $item];
  if ($this->items)
  {
  	if(array_Key_exists($id,$this->items))
  	{
  		$storedItem = $this->items[$id];
  	}
  }
  $storedItem['qty']++;
  $storedItem['price'] = $item->price * $storedItem['qty'];
  $this->items[$id] = $storedItem;
  $this->totalQty++;
  $this->totalPrice += $item->price;
}

 

وعندك بعد خطأ داخل ميثود getAddToCart تبع الكنترولر ProductController عدلت على 



$oldcart = Session::has('cart') ? Session::all('cart') : null;

الى



$oldcart = Session::has('cart') ? Session::get('cart') : null;

 

واشتغل معي تمام في الاضافة وغيره 

ي شيخ الله يسعدك دنيا واخرة ليا كم يوم احاول ^_^

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !