зачем пытаться получить свойство не-объекта, но нормально работает другой компьютер?

Я разработал проект Laravel на моем компьютере. Когда я копирую этот проект на другой ноутбук и запускаю, все нормально, но только одна страница, которая выдает мне ошибку типа: Попытка получить свойство не-объекта. Странные вещи на моем ПК, где я разработал этот проект, все в порядке. Я полностью застрял. Пожалуйста помоги мне с этим.

Вот мой код, который на самом деле дает мне ошибку:

CartController:

     public function showCart(){
$cart = Cart::where('user_id',Auth::user()->id)->first();
//dd($cart);

if(!$cart){
$cart =  new Cart();
$cart->user_id=Auth::user()->id;
$cart->save();
}

$items = $cart->cartItems;
$total=0;
// dd($items);
foreach($items as $item){
$total+=$item->product->price;
}

return view('cart.view',['items'=>$items,'total'=>$total]);
}

Вот мой файл просмотра:

   @section('content')

<div class="row">
<div class="col-sm-12 col-md-10 col-md-offset-1">
<table class="table table-hover">
<thead>
<tr>
<th>Product</th>
<th></th>
<th class="text-center"></th>
<th class="text-center">Total</th>
<th> </th>
</tr>
</thead>
<tbody>
@foreach($items as $item)
<tr>
<td class="col-sm-8 col-md-6">
<div class="media">
<a class="thumbnail pull-left" href="#"> <img class="media-object" src="{{asset("/images"."/".$item->product->picturePath)}}" style="width: 100px; height: 72px;"> </a>
<div class="media-body">
<h4 class="media-heading"><a href="#">{{$item->product->name}}</a></h4>
</div>
</div></td>
<td class="col-sm-1 col-md-1" style="text-align: center">
</td>
<td class="col-sm-1 col-md-1 text-center"></td>
<td class="col-sm-1 col-md-1 text-center"><strong>{{$item->product->price}}Tk</strong></td>
<td class="col-sm-1 col-md-1">
<a href="/removeItem/{{$item->id}}"> <button type="button" class="btn btn-danger">
<span class="fa fa-remove"></span> Remove
</button>
</a>
</td>
</tr>
@endforeach

<tr>
<td>   </td>
<td>   </td>
<td>   </td>
<td><h3>Total</h3></td>
<td class="text-right"><h3><strong>{{$total}}TK</strong></h3></td>
</tr>
<tr>
<td>   </td>
<td>   </td>
<td>   </td>
<td>
<a href="/"> <button type="button" class="btn btn-default">
<span class="fa fa-shopping-cart"></span> Continue Shopping
</button>
</a></td>

<form action="{{route('checkout.view')}}" method="post">
{{csrf_field()}}
<input type="hidden" value="{{$total}}" name="total">
<td>
<button type="submit" class="btn btn-success">
Checkout <span class="fa fa-play"></span>
</button></td>
</form>

</tr>
</tbody>
</table>
</div>
</div>@endsection

Вот мой файл маршрута:

    Route::get('/addProduct/{productId}', 'CartController@addItem')-
>name('addcart');
Route::get('/removeItem/{productId}', 'CartController@removeItem');
Route::get('/cart', 'CartController@showCart')->name('cart');

При маршрутизации: / cart я получил ошибку в другом ноутбуке (скриншот ошибки добавлен ниже), но на моем ПК все работает нормально. Пожалуйста, помогите мне. Заранее спасибо.
введите описание изображения здесь

0

Решение

это потому, что вы вызываете $ cart-> cartItems; что если у вас нет товаров в корзине или вы скажете, что следующая часть выполнена;

if(!$cart){
$cart =  new Cart();
$cart->user_id=Auth::user()->id;
$cart->save();
}

это создаст новую корзину без элементов корзины, поэтому ваша переменная $ items будет иметь значение null, а вызов foreach при нулевом вызове вернет ошибку …

на вашем компьютере вы, возможно, уже добавили любую корзину с товарами, поэтому вы не получаете никакой ошибки, но при новой установке вы будете получать ошибку, пока вы не добавите любую корзину с cartItems

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]