Как исключить товар в заказе у разных продавцов в laravel? - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь показать заказы, принадлежащие определенному продавцу, когда клиент размещает заказ.Проблема возникает, когда покупатель покупает сразу несколько товаров у разных продавцов. Заказ (включая другие товары в корзине) поступает продавцу, чей товар последний в корзине.

, если заказ только на один товар, все кажетсяработать.Вот как выглядит мой запрос в контроллере.

 // 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 голосов
/ 04 июля 2019

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') `для группировки ваших результатов.

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