Вы можете сделать это, применив дополнительные ограничения на отношения.
class Product extends Model
{
/**
* Get the orders for the product.
*/
public function orders()
{
return $this->hasMany('App\Order')->where('type', '=', 'order');
}
/**
* Get the quotes for the product.
*/
public function quotes()
{
return $this->hasMany('App\Order')->where('type', '=', 'quote');
}
}
Теперь вы можете проверять предложения и заказы на продукт, используя следующий код
Product::has('quotes');
Product::has('orders');
Если вы не Если вы не хотите писать дополнительные ограничения в методе отношений, добавляется только отношение orders()
, тогда при необходимости можно использовать метод whereHas()
.
$orders = Product::whereHas('orders', function (Builder $query) {
$query->where('type', '=', 'order');
})->get();
$orders = Product::whereHas('orders', function (Builder $query) {
$query->where('type', '=', 'quote');
})->get();