@foreach循环不显示任何内容

时间:2019-06-15 06:55:26

标签: php laravel

我正在尝试显示我的订单表中的所有订单,但是尽管我的表中有寄存器,但没有显示任何内容。 这是我的控制器

public function index()
{
    $orders = auth()->user()->orders;
    return view('pagini.my-orders')->with('orders', $orders);

}

这是我的@foreach

@foreach ($orders as $order)
 {{$order->id}}
 {{presentPrice($order->billing_total)}}
     @foreach ($order->products as $product)
       {{$product->name}}
       <img src="{{asset($product->image)}}">
     @endforeach
@endforeach

这是我的订单表的图片: Orders table image 这是我得到的结果: Result @foreach

这是我的模型-用户模型:

public function orders(){
 return $this->hasMany('App\Orders');
}

-产品型号:

 public function orders(){
  return $this->belongsToMany('App\Orders');
}
  • 订单模型:

    public function user(){ return $this->belongsTo('App\User'); } public function products(){ return $this->belongsToMany('App\Product')->withPivot('quantity'); }

4 个答案:

答案 0 :(得分:0)

您应该首先在Tinker中检查称为ERM的查询是否正确。 然后尝试更改此代码。您应该在最后使用get()或all()。

public function index()
    {
        $orders = auth()->user()->orders->all();
        return view('pagini.my-orders')->with('orders', $orders);

    }

答案 1 :(得分:0)

要获取与用户使用相关的orders

$orders = auth()->user()->orders()->get();

并使用orders作为关联来获取users

$user = auth()->user()->load('orders');

现在您可以像orders一样获得$user->orders

答案 2 :(得分:0)

如果需要订单,如果订单表中有一个user_id列,则可以从订单本身开始

$orders = Orders::where('user_id', auth()->user()->id)->get();

答案 3 :(得分:0)

一切正常。我只是专注于错误,我忘记了我是使用没有订单的帐户登录的。抱歉,谢谢大家!