كيفيه زياده سله المشتريات عند الضغظ الزر
اعمل على موقع مثل سوق.كوم المشكله عندما اضغط على 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)
على العموم المشكله والله اعلم انها في النسخه الجديده
جرب تستخدم session كـ method
يعني كذا
$request->session()->has
مثل ماهو موضح في Documentation
ماقد تعاملت مع githup
بس رفعته هنا كمان لمن حاولت احفظ الاشياء عشان اعرضها في shopping-cart يطلع Undefined variable: products
بالنسبة لعدد المشتريات في السلة شغال معي بدون مااعدل على اكوادك شي
بالنسبة للخطا الثاني عندك الكثير من الأخطاء الإملائية في الميثود 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
وفيه عندك مشكلة لازم تتاكد منها حاليا الاضافة للسلة مايضيف غير منتج واحد فقط بالسلة لازم تراجع الاكواد وتتاكد انه يضيف كل المنتجات بدون مشاكل تاكد من كتباة الأكواد بشكل صحيح وباذن الله تنحل كل مشاكلك
ايوة مشكلتي بالضبط انو مايضيف غير منتج واحد فقط لكن عنده كل ماتضغط يضيف حتى في كلاس الي قبلو كان كاتب new cart
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;
واشتغل معي تمام في الاضافة وغيره
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;
واشتغل معي تمام في الاضافة وغيره
ي شيخ الله يسعدك دنيا واخرة ليا كم يوم احاول
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !