پیش به سوی تابستان؛ با تخفیفهای داغ راکت!
بزن بریم!سلام تو سبد خرید برای کوپن
این ارور دریافت میکنم
ErrorException
Trying to access array offset on value of type null
Illuminate\Foundation\Bootstrap\HandleExceptions::handleError
C:\wamp\www\digikala\app\Http\Controllers\CartController.php:22
کد های مربوطه به این صورته
cartcontroller.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Product;
use Cart;
use Validator;
use App\Models\Coupon;
use App\Models\Category;
class CartController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$categories = Category::all();
$discount = session()->get('coupon')['discount'];
$newTotal = Cart::total()->$discount;
return View('cart')->with([
'categories'=>$categories,
'discount'=> $discount,
'newTotal'=> $newTotal,
]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//store product information to Cart
$duplicated = Cart::instance('default')->search(function($cartItem,$rowId) use($request){
return $cartItem->id === $request->id;
});
if ($duplicated->isNotEmpty()){
return redirect(route('cart.index'))->with('success_message','محصول از قبل در سبد خرید موجود می باشد.');
}else {
Cart::instance('default')->add($request->id, $request->name, 1, $request->price)
->associate('App\Models\Product'); //model
return redirect(route('cart.index'))->with('success_message','محصول با موفقیت به سبد خرید اضافه شد.');
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//update one product cart
$validator = validator::make($request->all(),[
'quantity'=>'required|numeric|between:1,48'
]);
if($validator->fails()) {
session()->flash('errors_message','تعداد محصول باید بین 1 تا 48 عدد باشد.');
return response()->json(['success'=>false]);
} else {
Cart::instance('default')->update($id,$request->quantity);
session()->flash('success_message','تعداد محصولات به روز شد.');
return response()->json(['success'=>true]);
}
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
Cart::remove($id);
return back()->with('success_message','محصول با موفقیت از سبد خرید حذف شد.');
}
public function empty()
{
//delete cart all
Cart::destroy();
return redirect(route('cart.index'))->with('success_message','سبد خرید با موفقیت خالی شد');
}
}
couponcontroller.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\coupon;
use Cart;
class CouponController extends Controller
{
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$coupon = Coupon::where('code',$request->coupon_code)->first();
if (! $coupon) {
return redirect()->route('cart.index')->with('errors_message','.......');
}
session()->put('coupon',[
'code'=>$coupon->code,
'discount'=>$coupon->discount(Cart::total()),
]);
return redirect()->route('cart.index')->with('success_message','کوپن با موفقیت اعمال شد.');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy()
{
session()->forget('coupon');
return redirect()->route('cart.index')->with('success_message','کوپن با موفقیت حذف شد');
}
}
cart.blade.php
<!-- Page Title-->
<div class="page-title">
<div class="container">
<div class="column">
<h1>سبد خرید فروشگاه</h1>
</div>
<div class="column">
<ul class="breadcrumbs">
<li><a href="{{url('/')}}">خانه</a>
</li>
<li class="separator"> </li>
<li>سبد خرید</li>
</ul>
</div>
</div>
</div>
<!-- Page Content-->
<div class="container padding-bottom-3x mb-1">
@if (session()->has('success_message'))
<!-- Alert-->
<div class="alert alert-info alert-dismissible fade show text-center" style="margin-bottom: 30px;">
<span class="alert-close" data-dismiss="alert"></span>
<img class="d-inline align-center" src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA1MTIuMDAzIDUxMi4wMDMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMi4wMDMgNTEyLjAwMzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiPgo8Zz4KCTxnPgoJCTxnPgoJCQk8cGF0aCBkPSJNMjU2LjAwMSw2NGMtNzAuNTkyLDAtMTI4LDU3LjQwOC0xMjgsMTI4czU3LjQwOCwxMjgsMTI4LDEyOHMxMjgtNTcuNDA4LDEyOC0xMjhTMzI2LjU5Myw2NCwyNTYuMDAxLDY0eiAgICAgIE0yNTYuMDAxLDI5OC42NjdjLTU4LjgxNiwwLTEwNi42NjctNDcuODUxLTEwNi42NjctMTA2LjY2N1MxOTcuMTg1LDg1LjMzMywyNTYuMDAxLDg1LjMzM1MzNjIuNjY4LDEzMy4xODQsMzYyLjY2OCwxOTIgICAgIFMzMTQuODE3LDI5OC42NjcsMjU2LjAwMSwyOTguNjY3eiIgZmlsbD0iIzUwYzZlOSIvPgoJCQk8cGF0aCBkPSJNMzg1LjY0NCwzMzMuMjA1YzM4LjIyOS0zNS4xMzYsNjIuMzU3LTg1LjMzMyw2Mi4zNTctMTQxLjIwNWMwLTEwNS44NTYtODYuMTIzLTE5Mi0xOTItMTkycy0xOTIsODYuMTQ0LTE5MiwxOTIgICAgIGMwLDU1Ljg1MSwyNC4xMjgsMTA2LjA2OSw2Mi4zMzYsMTQxLjE4NEw2NC42ODQsNDk3LjZjLTEuNTM2LDQuMTE3LTAuNDA1LDguNzI1LDIuODM3LDExLjY2OSAgICAgYzIuMDI3LDEuNzkyLDQuNTY1LDIuNzMxLDcuMTQ3LDIuNzMxYzEuNjIxLDAsMy4yNDMtMC4zNjMsNC43NzktMS4xMDlsNzkuNzg3LTM5Ljg5M2w1OC44NTksMzkuMjMyICAgICBjMi42ODgsMS43OTIsNi4xMDEsMi4yNCw5LjE5NSwxLjI4YzMuMDkzLTEuMDAzLDUuNTY4LTMuMzQ5LDYuNjk5LTYuNGwyMy4yOTYtNjIuMTQ0bDIwLjU4Nyw2MS43MzkgICAgIGMxLjA2NywzLjE1NywzLjU0MSw1LjYzMiw2LjY3Nyw2LjcyYzMuMTM2LDEuMDY3LDYuNTkyLDAuNjQsOS4zNjUtMS4yMTZsNTguODU5LTM5LjIzMmw3OS43ODcsMzkuODkzICAgICBjMS41MzYsMC43NjgsMy4xNTcsMS4xMzEsNC43NzksMS4xMzFjMi41ODEsMCw1LjEyLTAuOTM5LDcuMTI1LTIuNzUyYzMuMjY0LTIuOTIzLDQuMzczLTcuNTUyLDIuODM3LTExLjY2OUwzODUuNjQ0LDMzMy4yMDV6ICAgICAgTTI0Ni4wMTcsNDEyLjI2N2wtMjcuMjg1LDcyLjc0N2wtNTIuODIxLTM1LjJjLTMuMi0yLjExMi03LjMxNy0yLjM4OS0xMC42ODgtMC42NjFMOTQuMTg4LDQ3OS42OGw0OS41NzktMTMyLjIyNCAgICAgYzI2Ljg1OSwxOS40MzUsNTguNzk1LDMyLjIxMyw5My41NDcsMzUuNjA1TDI0Ni43LDQxMS4yQzI0Ni40ODcsNDExLjU2MywyNDYuMTY3LDQxMS44NCwyNDYuMDE3LDQxMi4yNjd6IE0yNTYuMDAxLDM2Mi42NjcgICAgIEMxNjEuOSwzNjIuNjY3LDg1LjMzNSwyODYuMTAxLDg1LjMzNSwxOTJTMTYxLjksMjEuMzMzLDI1Ni4wMDEsMjEuMzMzUzQyNi42NjgsOTcuODk5LDQyNi42NjgsMTkyICAgICBTMzUwLjEwMywzNjIuNjY3LDI1Ni4wMDEsMzYyLjY2N3ogTTM1Ni43NTksNDQ5LjEzMWMtMy40MTMtMS43MjgtNy41MDktMS40NzItMTAuNjg4LDAuNjYxbC01Mi4zNzMsMzQuOTIzbC0zMy42NDMtMTAwLjkyOCAgICAgYzQwLjM0MS0wLjg1Myw3Ny41ODktMTQuMTg3LDEwOC4xNi0zNi4zMzFsNDkuNTc5LDEzMi4yMDNMMzU2Ljc1OSw0NDkuMTMxeiIgZmlsbD0iIzUwYzZlOSIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K" width="18" height="18" alt="Medal icon"><strong>{{session()->get('success_message')}}</strong></div>
@endif
@if (session()->has('errors_message'))
<!-- Alert-->
<div class="alert alert-info alert-dismissible fade show text-center" style="margin-bottom: 30px;">
<span class="alert-close" data-dismiss="alert"></span>
<img class="d-inline align-center" src="data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA1MTIuMDAzIDUxMi4wMDMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMi4wMDMgNTEyLjAwMzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiPgo8Zz4KCTxnPgoJCTxnPgoJCQk8cGF0aCBkPSJNMjU2LjAwMSw2NGMtNzAuNTkyLDAtMTI4LDU3LjQwOC0xMjgsMTI4czU3LjQwOCwxMjgsMTI4LDEyOHMxMjgtNTcuNDA4LDEyOC0xMjhTMzI2LjU5Myw2NCwyNTYuMDAxLDY0eiAgICAgIE0yNTYuMDAxLDI5OC42NjdjLTU4LjgxNiwwLTEwNi42NjctNDcuODUxLTEwNi42NjctMTA2LjY2N1MxOTcuMTg1LDg1LjMzMywyNTYuMDAxLDg1LjMzM1MzNjIuNjY4LDEzMy4xODQsMzYyLjY2OCwxOTIgICAgIFMzMTQuODE3LDI5OC42NjcsMjU2LjAwMSwyOTguNjY3eiIgZmlsbD0iIzUwYzZlOSIvPgoJCQk8cGF0aCBkPSJNMzg1LjY0NCwzMzMuMjA1YzM4LjIyOS0zNS4xMzYsNjIuMzU3LTg1LjMzMyw2Mi4zNTctMTQxLjIwNWMwLTEwNS44NTYtODYuMTIzLTE5Mi0xOTItMTkycy0xOTIsODYuMTQ0LTE5MiwxOTIgICAgIGMwLDU1Ljg1MSwyNC4xMjgsMTA2LjA2OSw2Mi4zMzYsMTQxLjE4NEw2NC42ODQsNDk3LjZjLTEuNTM2LDQuMTE3LTAuNDA1LDguNzI1LDIuODM3LDExLjY2OSAgICAgYzIuMDI3LDEuNzkyLDQuNTY1LDIuNzMxLDcuMTQ3LDIuNzMxYzEuNjIxLDAsMy4yNDMtMC4zNjMsNC43NzktMS4xMDlsNzkuNzg3LTM5Ljg5M2w1OC44NTksMzkuMjMyICAgICBjMi42ODgsMS43OTIsNi4xMDEsMi4yNCw5LjE5NSwxLjI4YzMuMDkzLTEuMDAzLDUuNTY4LTMuMzQ5LDYuNjk5LTYuNGwyMy4yOTYtNjIuMTQ0bDIwLjU4Nyw2MS43MzkgICAgIGMxLjA2NywzLjE1NywzLjU0MSw1LjYzMiw2LjY3Nyw2LjcyYzMuMTM2LDEuMDY3LDYuNTkyLDAuNjQsOS4zNjUtMS4yMTZsNTguODU5LTM5LjIzMmw3OS43ODcsMzkuODkzICAgICBjMS41MzYsMC43NjgsMy4xNTcsMS4xMzEsNC43NzksMS4xMzFjMi41ODEsMCw1LjEyLTAuOTM5LDcuMTI1LTIuNzUyYzMuMjY0LTIuOTIzLDQuMzczLTcuNTUyLDIuODM3LTExLjY2OUwzODUuNjQ0LDMzMy4yMDV6ICAgICAgTTI0Ni4wMTcsNDEyLjI2N2wtMjcuMjg1LDcyLjc0N2wtNTIuODIxLTM1LjJjLTMuMi0yLjExMi03LjMxNy0yLjM4OS0xMC42ODgtMC42NjFMOTQuMTg4LDQ3OS42OGw0OS41NzktMTMyLjIyNCAgICAgYzI2Ljg1OSwxOS40MzUsNTguNzk1LDMyLjIxMyw5My41NDcsMzUuNjA1TDI0Ni43LDQxMS4yQzI0Ni40ODcsNDExLjU2MywyNDYuMTY3LDQxMS44NCwyNDYuMDE3LDQxMi4yNjd6IE0yNTYuMDAxLDM2Mi42NjcgICAgIEMxNjEuOSwzNjIuNjY3LDg1LjMzNSwyODYuMTAxLDg1LjMzNSwxOTJTMTYxLjksMjEuMzMzLDI1Ni4wMDEsMjEuMzMzUzQyNi42NjgsOTcuODk5LDQyNi42NjgsMTkyICAgICBTMzUwLjEwMywzNjIuNjY3LDI1Ni4wMDEsMzYyLjY2N3ogTTM1Ni43NTksNDQ5LjEzMWMtMy40MTMtMS43MjgtNy41MDktMS40NzItMTAuNjg4LDAuNjYxbC01Mi4zNzMsMzQuOTIzbC0zMy42NDMtMTAwLjkyOCAgICAgYzQwLjM0MS0wLjg1Myw3Ny41ODktMTQuMTg3LDEwOC4xNi0zNi4zMzFsNDkuNTc5LDEzMi4yMDNMMzU2Ljc1OSw0NDkuMTMxeiIgZmlsbD0iIzUwYzZlOSIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K" width="18" height="18" alt="Medal icon"><strong>{{session()->get('errors_message')}}</strong></div>
@endif
@if (count($errors)>0)
@foreach ($errors->all() as $error)
<!-- Alert-->
<div class="alert alert-danger alert-dismissible fade show text-center" style="margin-bottom: 30px;"><span class="alert-close" data-dismiss="alert"></span><i class="iziToast-icon icon-ban"></i><strong> {{$error}} </strong></div>
@endforeach
@endif
<!-- Shopping Cart-->
@if (Cart::count()>0)
<div class="table-responsive shopping-cart">
<table class="table">
<thead>
<tr>
<th>نام محصول</th>
<th class="text-center">تعداد / مقدار</th>
<th class="text-center">قیمت واحد</th>
<th class="text-center">قیمت کل</th>
<th class="text-center">سبد خرید بعدی</th>
<th class="text-center"><a class="btn btn-sm btn-outline-danger" href="{{route('cart.empty')}}">خالی کردن سبد</a></th>
</tr>
</thead>
@foreach(Cart::content() as $item)
<tbody>
<tr>
<td>
<div class="product-item"><a href="{{route('product.show',$item->model->slug)}}" class="product-thumb"><img src="{{asset('img/shop/cart/10.jpg')}}" alt="Product"></a>
<div class="product-info ">
<h4 class="product-title"><a href="{{route('product.show',$item->model->slug)}}">{{$item->model->name}}</a></h4>
<span><em>اندازه :</em> 10.5</span>
<span><em>رنگ بندی :</em> سفید مشکی</span>
</div>
</div>
</td>
<td class="text-center">
<div class="count-input">
<input class="quantity form-control" type="number" data-id="{{ $item->rowId }}" data-productQuantity="{{ $item->model->quantity }}" value="{{ $item->qty }}">
</div>
</td>
<td class="text-center text-lg text-medium font-small">{{$item->model->price}} تومان</td>
<td class="text-center text-lg text-medium font-small">{{ number_format($item->subtotal) }} تومان</td>
{{-- save one product to later--}}
<td class="text-center">
<form action="{{route('cart.saveForLater',$item->rowId)}}" method="post">
@csrf
@method('post')
<button class="btn remove-from-cart" type="submit" name="button" data-toggle="tooltip" title="افزودن به سبد خرید بعدی"><i class="icon-heart"></i></button>
</form>
</td>
{{-- Delet one product from cart--}}
<td class="text-center">
<form action="{{route('cart.destroy',$item->rowId)}}" method="post">
@csrf
@method('Delete')
<button class="btn remove-from-cart" type="submit" name="button" data-toggle="tooltip" title="حذف از سبد"><i class="icon-cross"></i></button>
</form>
</td>
</tr>
</tbody>
@endforeach
</table>
</div>
<div class="shopping-cart-footer">
<div class="column text-lg text-left">جمع قیمت: <span class="text-medium font-small"> {{Cart::subtotal()}} </span>+<span class="text-medium font-small"> {{Cart::tax()}} (مالیات) </span> : <span class="text-medium font-small">{{Cart::total()}}</span></div>
@if (session()->has('coupon'))
<div class="column text-lg text-right">مبلغ {{$discount}} اعمال شد.
<span class="text-medium font-small">{{session()->get('coupon')['code']}}</span>
<form action="{{route('coupon.destroy')}}" method="post">
@csrf
@method('Delete')
<button class="btn remove-from-cart" type="submit" name="button" data-toggle="tooltip" title="حذف کوپن"><i class="icon-cross"></i></button>
</form>
</div>
@else
<div class="column text-left">
<form action="{{route('coupon.store')}}" class="coupon-form" method="post">
@csrf
<input class="form-control form-control-sm" type="text" name="coupon_code" placeholder="کد کوپن خرید" required>
<button class="btn btn-outline-primary btn-sm" type="submit" name="submit">اعمال کوپین خرید</button>
</form>
</div>
@endif
</div>
<div class="shopping-cart-footer ">
<div class="column text-right">
<a class="btn btn-outline-secondary" href="{{route('shop')}}"> برگشت به فروشگاه <i class="icon-arrow-left"></i></a>
</div>
<div class="column text-left">
<a class="btn btn-primary" href="#" data-toast data-toast-type="success" data-toast-position="topRight" data-toast-icon="icon-circle-check" data-toast-title="سبد خرید : " data-toast-message="بروز رسانی موفقیت آمیز">بروز رسانی سبد خرید</a>
<a class="btn btn-success" href="checkout-address.html">بررسی و پرداخت</a>
</div>
</div>
@else
<div class="table-responsive shopping-cart">
<table class="table">
<div class="card text-center">
<div class="card-body">
<h3 class="card-title">اوه.چه بد سبد خرید شما خالیست.</h3>
<p class="card-text">جهت انجام خرید روی لینک زیر کلیک کنید</p>
<button class="btn btn-warning" onclick="location.href='{{route('shop')}}'" type="button">فروشگاه</button>
<button class="btn btn-success" onclick="location.href='{{route('home')}}'" type="button"><i class="icon-unlock"></i> ورود به سایت</button>
<div class="card-footer text-muted">کاربر جدید هستید؟<button class="btn" href="#" type="button"><i class="icon-unlock"></i> ثبت نام کنید</button></div>
</div>
</div>
</table>
</div>
@endif
<!-- Shopping Save Cart-->
<!-- Page Title-->
<div class="page-title">
<div class="container">
<div class="column">
<h1>لیست ذخیره</h1>
</div>
</div>
</div>
<!-- Shopping item Save Cart-->
@if (Cart::instance('saveForLater')->count()>0)
<div class="table-responsive shopping-cart">
<table class="table">
<thead>
<tr>
<th>نام محصول</th>
<th class="text-center">قیمت</th>
<th class="text-center">سبد خرید بعدی</th>
<th class="text-center"><a class="btn btn-sm btn-outline-danger" href="{{route('cart.savedForLaterEmpty')}}">خالی کردن لیست ذخیره</a></th>
</tr>
</thead>
@foreach (Cart::instance('saveForLater')->content() as $item)
<tbody>
<tr>
<td>
<div class="product-item"><a href="{{route('product.show',$item->model->slug)}}" class="product-thumb"><img src="{{asset('img/shop/cart/10.jpg')}}" alt="Product"></a>
<div class="product-info ">
<h4 class="product-title"><a href="{{route('product.show',$item->model->slug)}}">{{$item->name}}</a></h4>
<span><em>اندازه :</em> 10.5</span>
<span><em>رنگ بندی :</em> سفید مشکی</span>
</div>
</div>
</td>
<td class="text-center text-lg text-medium font-small">{{$item->price}} تومان</td>
{{-- save one product to later--}}
<td class="text-center">
<form action="{{route('cart.switchFromSavedToCart',$item->rowId)}}" method="post">
@csrf
@method('post')
<button class="btn remove-from-cart" type="submit" name="button" data-toggle="tooltip" title="افزودن به سبد خرید بعدی"><i class="icon-heart"></i></button>
</form>
</td>
{{-- Delet one product from cart--}}
<td class="text-center">
<form action="{{route('cart.destroySavedForLater',$item->rowId)}}" method="post">
@csrf
@method('Delete')
<button class="btn remove-from-cart" type="submit" name="button" data-toggle="tooltip" title="حذف از سبد"><i class="icon-cross"></i></button>
</form>
</td>
</tr>
</tbody>
@endforeach
</table>
</div>
@else
<div class="table-responsive shopping-cart">
<table class="table">
<div class="card text-center">
<div class="card-body">
<h3 class="card-title">لیست ذخیره شما خالیست.!</h3>
</div>
</div>
</table>
</div>
@endif
</div>
web.php
//Copon
Route::post('/coupon', [CouponController::class, 'store'])->name('coupon.store');
Route::delete('/coupon', [CouponController::class, 'destroy'])->name('coupon.destroy');
Coupon.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Coupon extends Model
{
use HasFactory;
public function findByCode($code)
{
return self::where('code',$code)->first();
}
public function discount($total)
{
if ($this->type=='fixed') {
return $this->value;
}elseif ($this->type=='percent_off')
{
return (integer)$total*($this->percent_off / 100);
}else {
return 0;
}
}
}
توضیحاتتون خیلی ناقصه. ولی احتمالا مشکلش مربوط به کد زیر هست:
session()->get('coupon')['discount']
قبلش مطمئن بشید که محتوای مورد نظرتون در session وجود داره یا نه.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟