У меня проблема с моим кодом "НЕОПРЕДЕЛЕННЫЙ ИНДЕКС" - PullRequest
0 голосов
/ 21 декабря 2018

Есть ссылка на мою предыдущую проблему, где есть код, может быть, он вам поможет Ошибка разбора: синтаксическая ошибка, непредвиденная '__construct' (T_STRING), ожидающая функция (T_FUNCTION) или const (T_CONST)

это проблема, которую я получаю

Неопределенный индекс: item (View: C: \ xampp \ htdocs \ laravel \ resources \ views \ shoppingCart.blade.php) эта ошибка есть <strong><?php echo e($product['item']['name']); ?></strong>

это мой маршрут

Route::get('shoppingCart', 'WebController@shoppingCart')->name('get.shoppingCart');

это у меня в веб-контроллере

public function shoppingCart(){
  if(!Session::has('cart')){
    return view('shoppingCart');
  }
  $oldCart = Session::get('cart');
  $cart = new Cart($oldCart);
  return view('shoppingCart',['products'=>$cart->items]);
}

это ссылка на корзину

<li><a href="{{ route('get.shoppingCart') }}">CART  <span class="badge">{{Session::has('cart') ? '!' : ''}}</span></a></li>

А это мой коддля покупок Корзина

@extends('layouts.main')
@section('content')
@if(Session::has('cart'))
    <div>
        <div>
            <ul class="list-group">
                @foreach($products as $product)
                <li class="list-group-item"></li>
                <strong>{{$product['item']['name']}}</strong>
                <li><a href="#">Odstrániť</a></li>
                @endforeach
            </ul>
        </div>
    </div>

@else
<div>
    <h2>V košíku nemáš žiadne položky!!!</h2>
</div>
@endif

@endsection

1 Ответ

0 голосов
/ 21 декабря 2018

Во-первых, вы можете проверить, есть ли у вас данные или нет на $ cart-> items при написании dd ($ cart-> items);на вашей функции.Следуйте моим комментариям.

public function shoppingCart(){
  if(!Session::has('cart')){
    return view('shoppingCart');
  }
  $oldCart = Session::get('cart');
  $cart = new Cart($oldCart);

 //dd($cart->items) /*uncomment this and check if you have data or not if you have no then problem is  */
  return view('shoppingCart',['products'=>$cart->items]); /* on the other if you have data dont forget those line and look at my comment on blade.php */
}

Ваш blade.php

@extends('layouts.main')
@section('content')
@if(Session::has('cart'))
    <div>
        <div>
            <ul class="list-group">
                @foreach($products as $product)
                <li class="list-group-item"></li>
                <strong>{{$product['item']['name']}}</strong>



<!--Look at here you remembe you were add products writing `['products'=>$cart->items]` then you be care calling your datas first you be relay on your codes you are working array (it seems you are working with objects then you need to call it $products->item->name Secondly you remember on the function you were add your data `['products'=>$cart->items]` like this if there is no child items object on $cart->items then you need to call it like 

        foreach($products as $product))
        {
         echo $product->name; //if it is array then echo $product['name'];
        }

    -->
                    <li><a href="#">Odstrániť</a></li>
                    @endforeach
                </ul>
            </div>
        </div>

    @else
    <div>
        <h2>V košíku nemáš žiadne položky!!!</h2>
    </div>
    @endif

    @endsection
...