【发布时间】:2022-09-23 15:32:55
【问题描述】:
我正在尝试保存一个数组以进行结帐,但是当我打印会话时它给出了 null
namespace App\\Http\\Livewire;
use App\\Orders;
use Livewire\\Component;
use Illuminate\\Support\\Facades\\Auth;
use Illuminate\\Http\\Request;
use Cart;
use Carbon\\Carbon;
public function setAmountForCheckout()
{
if(session()->has(\'coupon\'))
{
session()->put(\'checkout\',[
\'discount\'=>$this->discount,
\'subtotal\'=>$this->subtotalAfterDiscount,
\'total\'=>$this->totalAfterDiscount,
]);
}
else
{
session()->put(\'checkout\',[
\'discount\'=>0,
\'tax\'=>Cart::instance(\'cart\')->tax(),
\'subtotal\'=>Cart::instance(\'cart\')->subtotal(),
\'total\'=>Cart::instance(\'cart\')->total(),
]);
session()->save();
}
}
public function placeOrder(Request $request)
{
dd(session()->get(\'checkout\'));
$this->validate([
\'first_name\' => \'required|min:4|string\',
\'Phone_number\' => \'required|digits:11\'
]);
$order=new Orders();
$order->user_id=Auth::id();
$order->cust_name=$this->first_name;
$order->phone=$this->Phone_number;
$order->subtotal=session()->get(\'checkout\')[\'subtotal\'];
$order->discount=session()->get(\'checkout\')[\'discount\'];
$order->total=session()->get(\'checkout\')[\'total\'];
$order->status=\'ordered\';
$order->is_shipping=$this->haveShipping ? 1:0;
foreach(Cart::instance(\'cart\')->content() as $items)
{
$orderItem= new OrderItems();
$orderItem->product_id=$items->id;
$orderItem->price=$item->price;
$orderItem->order_id=$order->id;
$orderItem->quantity=$item->qty;
$orderItem->save();
}
if($this->haveShipping)
{
$this->validate([
\'Address\'=>\'required|min:4\',
\'shipping_fee\'=>\'required|numeric\'
]);
$order->address=$this->Address;
$order->delivery=$this->shipping_fee;
}
$order->save();
Cart::instance(\'cart\')->destroy();
session()->forget(\'checkout\');
}
当我删除 dd 时,它给了我错误“尝试访问 null 类型值的数组偏移量” 我试图找出会话有什么问题。 我也检查了购物车是否可以正常工作,但我发现它运行良好并提供数据。
标签: laravel-8 laravel-livewire