В этом случае вам нужно использовать belongsToMany
отношение.
Немного о Has Many Through
.
Таблица:
Product
id
Order
id
product_id
Order_Category
id
order_id
в этом случае вы можете получить Order Categories
для Product
class Product {
// ...
order_categories() {
return $this->hasManyThrough('App\Post', 'App\User');
}
// ...
}
Laravel делает что-то вроде этого.
$orderIds = Order::query()
->where('product_id', $product->id)
->get(['id'])
->pluck('id');
$orderCategories = OrderCategory::query()
->whereIn('order_id', $orderIds)
->get();