【问题标题】:Cannot use object of type __PHP_Incomplete_Class as array. FatalErrorException不能将 __PHP_Incomplete_Class 类型的对象用作数组。致命错误异常
【发布时间】:2018-03-18 18:37:11
【问题描述】:

我遇到过这个问题(

不能将 __PHP_Incomplete_Class 类型的对象用作数组

) 在使用 Laravel 做电子商务网站时,我试图获取所购买产品的名称。我的控制器功能是这样的

$orders=Auth::user()->订单;

$orders->transform(function($orders, $key) { $orders->cart=unserialize($orders->cart);

返回 $orders;
});

return view('shop.profile', ['orders'=>$orders]);

视图代码中的问题是这行{{$item['item']['name']}},没有它,我可以看到购买的数量、价格和其他任何内容。

我已经做了所有我在互联网上知道和找到的事情,但没有找到任何解决方案

【问题讨论】:

  • 你能在视图中也显示代码吗?目前还不清楚您对哪些数据感兴趣,但我认为查看代码会有所帮助。
  • <h2 align="center">My orders</h2> <br/> @foreach($orders as $order) <div class="panel panel-default"> <div class="panel-body"> <ul class="list-group"> @foreach($order->cart->items as $item) <li class="list-group-item"> <span class="badge">{{$item['price']}} lei</span> {{$item['item']['name']}} | {{$item['qty']}} </li> @endforeach </ul> </div> <div class="panel-footer"><strong>Total Price: {{$order->cart->totalPrice}} lei </strong></div> </div> @endforeach

标签: arrays laravel class object


【解决方案1】:

根据您的信息,我认为您可以使用这样的解决方案:

<h2 align="center">My orders</h2> <br/>
@foreach($orders as $order)
    <div class="panel panel-default">
        <div class="panel-body">
            <ul class="list-group">
                @foreach($order->cart->items as $item)
                    <li class="list-group-item">
                        <span class="badge">{{$item->price}} lei</span> 
                        {{$item->item->name }} | {{$item->qty }} 
                    </li>
                @endforeach
            </ul>
        </div>
        <div class="panel-footer"><strong>Total Price: {{$order->cart->totalPrice}} lei </strong></div>
    </div>
@endforeach

通常,您不会像对待数组那样与 $items 交谈,而是像对待对象一样。我相信这应该可以解决问题,请让我知道它是否有效:)

【讨论】:

  • 我已经试过了。我得到另一个错误(试图获取非对象的属性)
  • 您能否更详细地说明导致问题的确切行是什么?我可以想象 {{$item->item->name }} 需要是 {{$item->->name }},这是正确的吗?
  • 不知何故它现在与初始代码一起工作,即使我今天在其他视图页面上工作。无论如何,非常感谢您的帮助。我只是觉得 laravel 很奇怪。有一天它工作,然后有一天它失败了。反之亦然
  • 不用担心。也许你可以投票并标记为已回答,提前谢谢你;)
猜你喜欢
  • 2013-07-05
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多