购物车为空时总是出错,Laravel 5
Always getting error when cart is empty, Laravel 5
遇到这个错误:
ErrorException in CartController.php line 35: Trying to get property of non-object
这是代码:
public function index()
{
$this->data['details'] = Cart::content();
$this->data['shipping'] = Shipping::where('region_category_id',session('location'))->where('type',session('type_komoditi'))->first();
$regType = session('regType');
$regId = session('id_wilayah');
$qReg = RegionCategory::find($regId);
if($regType == 'children') {
$this->data['minimalWeight'] = $qReg->minimal_weight;
//$this->data['minimalBuy'] = $qReg->min_buy;
}
$this->data['minimalBuy'] = $qReg->min_buy; //this is line 35
$this->data['regType'] = $regType;
\Session::put('price',Cart::total());
\Session::put('totalPrice',Cart::total());
\Session::put('paycode',0);
return view('client.carts.index',$this->data);
}
当我删除第 35 行时,错误消失了,但该代码对于使用最小购买过滤器很重要。
如何解决这个错误?
这是说 $qReg 不是一个对象,您正在尝试使用 min_buy
属性.
从中获取值
尝试使用 print_r($qReg);
打印对象 $qReg
,然后退出脚本。
print_r($qReg);
exit();
并检查该对象是否具有 属性 min_buy
。
为什么 $this->data['minimalBuy'] = $qReg->min_buy;
在 if 块之后?即使 if($regType == 'children')
为假,它也会被覆盖。
这是错误原因 $qReg->min_buy return 无效。
您可以通过 return 默认值修复,如下所示:
$this->data['minimalBuy'] = $qReg->min_buy ?? 0;
这意味着如果是 null return 0
遇到这个错误:
ErrorException in CartController.php line 35: Trying to get property of non-object
这是代码:
public function index()
{
$this->data['details'] = Cart::content();
$this->data['shipping'] = Shipping::where('region_category_id',session('location'))->where('type',session('type_komoditi'))->first();
$regType = session('regType');
$regId = session('id_wilayah');
$qReg = RegionCategory::find($regId);
if($regType == 'children') {
$this->data['minimalWeight'] = $qReg->minimal_weight;
//$this->data['minimalBuy'] = $qReg->min_buy;
}
$this->data['minimalBuy'] = $qReg->min_buy; //this is line 35
$this->data['regType'] = $regType;
\Session::put('price',Cart::total());
\Session::put('totalPrice',Cart::total());
\Session::put('paycode',0);
return view('client.carts.index',$this->data);
}
当我删除第 35 行时,错误消失了,但该代码对于使用最小购买过滤器很重要。 如何解决这个错误?
这是说 $qReg 不是一个对象,您正在尝试使用 min_buy
属性.
尝试使用 print_r($qReg);
打印对象 $qReg
,然后退出脚本。
print_r($qReg);
exit();
并检查该对象是否具有 属性 min_buy
。
为什么 $this->data['minimalBuy'] = $qReg->min_buy;
在 if 块之后?即使 if($regType == 'children')
为假,它也会被覆盖。
这是错误原因 $qReg->min_buy return 无效。 您可以通过 return 默认值修复,如下所示:
$this->data['minimalBuy'] = $qReg->min_buy ?? 0;
这意味着如果是 null return 0