如何在Laravel中排除不同卖家的订单中的产品?

时间:2019-07-04 12:41:14

标签: php laravel laravel-5 eloquent e-commerce

我正在尝试显示客户下订单时属于某个卖方的订单。当客户一次从不同的卖方购买多个产品时,就会出现问题。订单(包括购物车中的其他产品)转到了产品在购物车中最后一个的卖方。

如果订单仅是一种产品,则一切似乎正常。这是我的查询在控制器中的外观。

 // Seller Orders 
 public function viewOrders(User $user)
 {

 $orders = Auth::user()->sellerOrders()->products()->with('seller')- >orderBy('id', 'DESC')->paginate(2);
 // dd($orders);
 return view('orders')->with('orders', $orders);
 }

这是我的user.php

 public function sellerOrders()
 {
     return $this->hasMany(Order::class, 'seller_id');
 }

这是Order.php

public function user()
{
    return $this->belongsTo('App\User', 'seller_id');
}

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

这就是产品模型中的内容

protected $table='products';
protected $primaryKey='id';
protected $fillable=  ['seller_id','pro_name','pro_price','pro_info','image','stock','category_id'];
}

 public function seller()
{
// a product belongs to a seller
return $this->belongsTo('App\User', 'seller_id');
}

这是我的桌子https://imgur.com/a/2uF5iuS的样子 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

Product.php

public function seller()
{
    // a product belongs to a seller
    return $this->belongsTo('App\User', 'seller_id');
}

因此您将拥有一个$order,并且可以像这样检索订单产品:

$order->products()->with('seller')->get();

使用->with('seller') will load in the sellers, and you use Eloquent's query builder-> groupBy('seller')`子句将结果分组。