我正在尝试显示客户下订单时属于某个卖方的订单。当客户一次从不同的卖方购买多个产品时,就会出现问题。订单(包括购物车中的其他产品)转到了产品在购物车中最后一个的卖方。
如果订单仅是一种产品,则一切似乎正常。这是我的查询在控制器中的外观。
// 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的样子 任何帮助将不胜感激。
答案 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')`子句将结果分组。