如何处理试图在laravel中获取非对象错误的属性?
Posted
技术标签:
【中文标题】如何处理试图在laravel中获取非对象错误的属性?【英文标题】:how to handle Trying to get property of non-object error in laravel? 【发布时间】:2020-06-13 19:03:35 【问题描述】:我正在从购物车中删除商品,删除后我正在显示新的结果。但是购物车表中的所有项目都已删除,我收到此错误
试图获取非对象的属性(查看: D:\xampp\htdocs\avitra\resources\views\ordersummary.blade.php)
用于以下查询。当所有项目从购物车中删除并显示时,它无法从购物车表中获取任何记录,因此它返回空值并出现错误?我如何在 laravel 中处理这个错误?
$getCartResult=DB::table('product_details')
->join('cart','cart.product_id','=','product_details.product_id')
->join('subcategory','product_details.sub_id','=','subcategory.sub_id')
->select('subcategory.image','subcategory.name_of_subcategory','product_details.*','cart.*')
->where('cart.user_id',$userid)
->get();
刀片文件:
<?php $getCartResult=DB::table('product_details')
->join('cart','cart.product_id','=','product_details.product_id')
->join('subcategory','product_details.sub_id','=','subcategory.sub_id')
->select('subcategory.image','subcategory.name_of_subcategory','product_details.*','cart.*')
->where('cart.user_id',$userid)
->get();
?>
<?php
if (!empty($getCartResult))
?>
<div class="card-body cart_show" style="overflow-y: scroll;height: 300px;display:none;">
@foreach($getCartResult as $v_contents)
<div class="row">
<div class="col-sm-3 mt-3">
<div>
<img src="asset('images/'.$v_contents->image)" class="img-fluid">
</div>
<center>
<div class="input-group mt-2" style="width:100px">
<button type="button" class="cart-btn btn-default btn-number cart_qtyminus" data-type="minus" data-id="<?php echo $v_contents->cart_id;?>" data-value="<?php echo $v_contents->product_id;?>">
<span class="fa fa-minus cart-fa"></span>
</button>
<!-- <input type="text" name="cart_qty" class="form-control input-number" value="$v_contents->qty" min="1" max="10"> -->
<span class="cart_quantity " style="border: 1px solid;height: 30px;width:30px;"><?php echo $v_contents->qty; ?></span>
<button type="button" class="cart-btn btn-default btn-number cart_qtyplus" data-type="plus" data-id="<?php echo $v_contents->cart_id;?>" data-value="<?php echo $v_contents->product_id;?>">
<span class="fa fa-plus cart-fa"></span>
</button>
</div>
</center>
</div>
<div class="col-sm-5 mt-3">
<div>
<span><b>$v_contents->name_of_subcategory</b></span>
</div>
<div class="mt-2">
<span>Seller : Avitra Ayurved</span>
</div>
<?php $subtotal=$v_contents->discount_price*$v_contents->qty; ?>
<div class="mt-2">
Price :<span class="cart_subtotal"><?php echo $subtotal; ?></span>
</div>
<div class="mt-2">
<span><a class="btn btn-sm mt-3 cart_delete" data-id="<?php echo $v_contents->cart_id;?>"><span style="color: #FBA842;"><b>REMOVE</b></span></a></span>
</div>
</div>
<div class="col-sm-4">
<div class="mt-2">
<span>Delivery by Fri Jan 24 | Free</span>
</div>
</div>
</div><hr>
@endforeach
<div>
<span style="float: right;"><button class="btn btn-sm continue cart_payment_show"><span><b>CONTINUE</b></span></button></span>
</div>
</div>
<?php ?>
【问题讨论】:
【参考方案1】:您收到此错误是因为您的查询没有返回任何结果,并且您正在尝试访问它的属性,例如$getCartResult->id
。
要解决此问题,您可以在刀片模板上使用 if
条件检查项目是否存在,例如
@if(!empty($getCartResult))
// your code
@endif
【讨论】:
@AshutoshMali 你能分享 ordersummary.blade.php 文件吗?还有您收到此错误的行号 我如何分享这个文件? 另外请分享您的错误截图。您可以通过编辑问题来上传图片 让我们continue this discussion in chat。【参考方案2】:我认为问题在于您正在尝试访问已删除的行。检查删除项目后返回的查询。
【讨论】:
以上是关于如何处理试图在laravel中获取非对象错误的属性?的主要内容,如果未能解决你的问题,请参考以下文章