Laravel: ErrorException Неопределенная переменная: элементы - PullRequest
1 голос
/ 09 апреля 2020

Итак, я хочу иметь возможность просматривать мою корзину на одной из моих страниц. Я могу просто «добавить в корзину», и значение количества товаров в моей корзине будет отображаться в правом верхнем углу моей страницы. Когда я go нажимаю на корзину, я получаю эту ошибку:

ErrorException Undefined variable: items. У меня есть следующий код:

Корзина. php:

   class Cart {

public $items = null;
public $totalQty = 0;
public $totalPrice = 0;

public function __Construct($oldCart)
{
    if ($oldCart) {
        $this->$items = $oldCart->$items;
        $this->$totalQty = $oldCart->$totalQty;
        $this->$totalPrice = $oldCart->$totalPrice;
    }

}
public function add($item, $id){
    $storedItem = ['qty' => 0, 'price' => $item->price, 'item' => $item];
    if($this->items) {
        if (array_key_exists($id, $this->items)){
            $storedItem = $this->items[$id];
        }
    }
    $storedItem['qty'] ++;
    $storedItem['price'] = $item->price * $storedItem['qty'];
    $this->items[$id] = $storedItem;
    $this->totalQty++;
    $this->totalPrice += $item->price;
}

PostsController. php:

public function getCart() {
if (!Session::has('cart')) {
    return view('posts.shopping-cart', ['post' => null]);
}
$oldCart = Session::get('cart');
$cart = new Cart($oldCart);
return view('posts.shopping-cart', ['post' => $cart->items, 'totalPrice'=> $cart->totalPrice]);
  }

Payment.blade:

@if(Session::has('cart'))
      <div class="row">
      <div class="col-sm-6 col-md-6 col-md-offset-3 col-sm-0ffset-3">
        <ul class="list-group">
        @foreach($posts as $post)
            <li class="list-group-item">
                <span class="badge">{{ $post['qty']}}</span>
                    <strong>{{ $post['item']['title']}}</strong>
                        <span class="label label-success">{{$post['price']}}</span>
                <div class="btn-group">

Web.api

Route::get('/shopping-cart', [ 'uses' => 'PostsController@getCart', 'as' => 'product.shoppingCart' ]);

Но когда я нажимаю ссылку на мою корзину, находящуюся в навигационной панели. php:

   <a class="nav-link " href="{{ route('product.shoppingCart')}}">Cart 
   Cart {{ Session::has('cart') ? Session::get('cart')->totalQty : ''}}

, я получаю сообщение об ошибке неопределенной переменная предметов

1 Ответ

1 голос
/ 09 апреля 2020

Ошибка в конструкторе класса Cart. Вы поставили знак доллара на имена объектов.

Просто удалите знаки доллара.

public function __Construct($oldCart)
{
    if ($oldCart) {
        $this->items = $oldCart->items;
        $this->totalQty = $oldCart->totalQty;
        $this->totalPrice = $oldCart->totalPrice;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...